我正在编写一个具有多种视觉状态的自定义XAML控件。我可以在控件的代码后面更改视觉状态,但是我无法检索当前状态。
我尝试了这个解决方案,看起来非常好。
Silverlight: VisualStateManager.GetVisualStateGroups doesn't, How can I get them?
然而,它抛出一个内部异常,不足以使应用程序崩溃,但我的IList不存在。我认为发生异常是因为它无法返回任何有效的VisualTreeHelper.GetChild(this,0)作为FrameworkElement;
如何从控件本身的代码中获取控件的可视状态。
Xaml代码:
<Style TargetType="cc:MyControl" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="cc:MyControl">
<Canvas x:Name="MyControlCanvas" Width="17" Height="43" HorizontalAlignment="Left" VerticalAlignment="Top">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="MyControlStateGroup" >
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Target="rectangle_Copy1.(UIElement.Opacity)" Value="1"/>