我有一个togglebotton
<ToggleButton Padding="1">
<TextBlock>
<Underline>Week</Underline>
</TextBlock>
</ToggleButton>
以及我需要更改的内容是在取消选中togglebutton时将下划线设置为false,并在控件被ckecked时将其设置为true。
现在我只有
<ToggleButton Padding="1">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="IsChecked">
<Storyboard Duration="0:0:0">
我无法弄明白接下来的事情。
我不会坚持使用textblock的概念。 ToggleButton中的文本应该是下划线,这就是全部。
答案 0 :(得分:0)
要使用VisualStateManager,您必须重新定义ToggleButton的模板 - 查看MSDN ToggleButton Syles。而不是你可以使用Blend的触发器。首先添加由Expression Blend SDK提供的项目System.Windows.Interactivity.dll和Microsoft.Expression.Interactions.dll,然后使用以下代码:
<ToggleButton x:Name="toggleButton" Padding="1">
<TextBlock x:Name="textBlock">
<i:Interaction.Triggers>
<ei:DataTrigger Binding="{Binding IsChecked, ElementName=toggleButton}" Value="True">
<ei:ChangePropertyAction PropertyName="TextDecorations">
<ei:ChangePropertyAction.Value>
<TextDecorationCollection>Underline</TextDecorationCollection>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</ei:DataTrigger>
<ei:DataTrigger Binding="{Binding IsChecked, ElementName=toggleButton}" Value="False">
<ei:ChangePropertyAction PropertyName="TextDecorations"/>
</ei:DataTrigger>
</i:Interaction.Triggers>
Week
</TextBlock>
</ToggleButton>
ei:和i:如下:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"