VisualStateManager,从控件的代码中获取当前状态

时间:2015-11-07 15:00:57

标签: c# wpf xaml uwp

我正在编写一个具有多种视觉状态的自定义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"/>

0 个答案:

没有答案