public static VisualStateGroup TryGetVisualStateGroup(DependencyObject dependencyObject, string groupName)
{
FrameworkElement root = GetImplementationRoot(dependencyObject);
if(root == null)
{
return null;
}
// ReSharper disable ReplaceWithSingleCallToFirstOrDefault
// ReSharper disable AssignNullToNotNullAttribute
return VisualStateManager.GetVisualStateGroups(root)
// ReSharper restore AssignNullToNotNullAttribute
.OfType<VisualStateGroup>()
.Where(group => string.CompareOrdinal(groupName, group.Name) == 0)
.FirstOrDefault();
// ReSharper restore ReplaceWithSingleCallToFirstOrDefault
}
}