2013-05-19 85 views
0

我寫了一個應用程序,其中有一個ToggleButton和UI上的其他幾個控件。當ToggleButton的狀態爲IsChecked時,我想要實現兩件事。ToggleButton IsChecked觸發器

 
1) Hide few controls e.g. button1,button2 etc. in below example 
2) Change 'Content' of ToggleButton to 'Show' 

我能做到不點2,但不知道如何訪問其他控制和設置Trigger內它們的屬性。我的XAML代碼如下所示:

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="108*" /> 
    <RowDefinition Height="107*" /> 
    <RowDefinition Height="96*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="209*" /> 
    <ColumnDefinition Width="161*" /> 
    <ColumnDefinition Width="133*" /> 
    </Grid.ColumnDefinitions> 
    <ToggleButton x:Name="tg" 
       Height="20" 
       Width="80" 
       Grid.Column="1" 
       Margin="2,38,79,49" 
       Grid.Row="1"> 
    <ToggleButton.Style> 
     <Style TargetType="{x:Type ToggleButton}"> 
     <Setter Property="Content" 
       Value="Hide" /> 
     <Style.Triggers> 
      <Trigger Property="IsChecked" 
        Value="true"> 
      <Setter Property="{Binding ElementName=Button1,Path=Content}" 
        Value="Show" /> 
      </Trigger> 
     </Style.Triggers> 
     </Style> 
    </ToggleButton.Style> 
    </ToggleButton> 
    <Button Content="Button1" 
      Height="23" 
      HorizontalAlignment="Left" 
      Margin="45,28,0,0" 
      Name="button1" 
      VerticalAlignment="Top" 
      Width="75" /> 
    <Button Content="Button2" 
      Height="23" 
      HorizontalAlignment="Left" 
      Margin="38,28,0,0" 
      Name="button2" 
      VerticalAlignment="Top" 
      Width="75" 
      Grid.Column="1" /> 
</Grid> 

問題:當用戶點擊切換按鈕「TG」我想隱藏「按鈕1」,「按鈕2」而當切換按鈕變爲狀態取消選中再次顯示BUTTON1。

如何切換button1的可見性與ToggleButtonIsChecked屬性?

回答

1

在你的資源聲明BoolToVisibilityConverter,如下所示:

<Window.Resources> 
    <BooleanToVisibilityConverter x:Key="BoolToVis" /> 
</Window.Resources> 

然後設置Button1的可見性結合:

<Button Content="Button1" Height="23" HorizontalAlignment="Left" Margin="45,28,0,0" Name="button1" VerticalAlignment="Top" Width="75" 
      Visibility="{Binding ElementName=tg, Path=IsChecked, Converter={StaticResource BoolToVis}}"/> 
+0

這是否意味着我不得不寫這篇文章的每一個按鈕,我想要顯示/隱藏。隨着隱藏按鈕,我也想改變網格列的寬度。其實我試圖找到解決方案http://stackoverflow.com/questions/16632068/zooming-in-specific-part-of-screen-in-wpf quesion。 – user2243747

+0

一個選項可能是將所有按鈕/元素放入容器中並顯示/隱藏該容器。 – Jatin

相關問題