0

私はトグルボタンを持っています

<ToggleButton Padding="1">
                                <TextBlock>
            <Underline>Week</Underline>
                                </TextBlock>
                            </ToggleButton>

そして、私が変更する必要があるのは、トグルボタンがチェックされていないときは下線を false に設定し、コントロールがチェックされているときは true に設定することです。

そして今、私は

 <ToggleButton Padding="1">
 <VisualStateManager.VisualStateGroups>
                                    <VisualStateGroup x:Name="CommonStates">

                                        <VisualState x:Name="IsChecked">

                                            <Storyboard Duration="0:0:0">

そして、私は次に何を理解することはできません.

私はテキストブロックの概念に固執していません。ToggleButton 内のテキストには下線を引く必要があります。それだけです。

4

1 に答える 1

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"
于 2011-09-16T21:42:59.247 に答える