2011-03-04 87 views
1

我有一个简单的WPF应用程序和一个窗口。该窗口具有依赖项属性。如何根据窗口的属性设置按钮的样式

public static readonly DependencyProperty ShiftProperty; 

    static VirtualKeyboard() 
    { 
     ShiftProperty = DependencyProperty.Register("Shift", typeof(bool), typeof(VirtualKeyboard)); 
    } 

    public bool Shift 
    { 
     get { return (bool)GetValue(ShiftProperty); } 
     set { SetValue(ShiftProperty, value); } 
    } 

现在,在这个窗口中,我有一个按钮,我希望通过应用样式来显示Shift是否为True。我承认在WPF中不是很有经验,但我相信这可以使用数据触发器来解决。我的问题是钩住它。

这是按钮的xaml。

 <Button Grid.Row="4" Grid.ColumnSpan="2" Grid.Column="0" Command="local:VirtualKeyboard.ShiftButtonPressedCommand" Content="Shift" Name="ShiftButton"> 
      <Button.Style> 
       <Style> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding Path=Shift}" Value="True"> 
          <Setter Property="Control.Background" Value="Black"> 

          </Setter> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </Button.Style> 
     </Button> 

我会很感激所有帮助,我可以得到。

感谢, 斯特凡

回答

0

您是right.You可以datatriggers.You做到这一点需要寡妇的DataContext设置为这个对于这个work.Otherwise绑定将无法访问您的依赖属性。

public VirtualKeyboard() 
    { 
     InitializeComponent(); 
     DataContext = this; 
    } 

,并指定你的风格像

<Button Grid.Column="0" Content="Shift" Name="ShiftButton"> 
      <Button.Style> 
       <Style> 
        <Setter Property="Button.Visibility" Value="Collapsed"/> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding Path=Shift}" Value="True"> 
          <Setter Property="Button.Visibility" Value="Visible"> 
          </Setter> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </Button.Style> 
     </Button> 
相关问题