2011-09-16 48 views
0

statemanager我有一個togglebotton問題與SL4

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

,我需要更改設置下劃線爲false什麼,什麼時候切換按鈕未被選中,並將其設置爲true,則控制ckecked。

,現在我只有

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

             <VisualState x:Name="IsChecked"> 

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

,我想不出有什麼未來。

我不堅持與文本塊的概念。 ToggleButton中的文本應該加下劃線,就是這樣。

回答

0

爲了使用VisualStateManager,您將不得不重新定義ToggleButton的模板 - 請參閱MSDN ToggleButton Syles。相反,你可以使用Blend的觸發器。首先添加到您的項目System.Windows.Interactivity.dll和Microsoft.Expression.Interactions.dll由Expression Blend SDK提供,然後使用下面的代碼:

<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:我:有以下幾種:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"