2011-10-04 85 views
0

我第一次使用WPF,並且我正在根據切換按鈕在測試工具欄上顯示/隱藏組對象。wpf C#在資源文件中隱藏/顯示控件

工具欄是通過資源字典中的模板創建的,我無法弄清楚如何使這個工作,因爲它看起來比winforms更多的問題。

在所有的例子中,我發現他們似乎都起作用,如果項目不是模板的,有沒有什麼辦法可以實現這一點。

我的代碼到目前爲止是在下面和失敗點是登錄togglebutton因爲我有x:名稱引用,顯然我不能做到這一點作爲其資源字典的一部分,所以我很難倒...

   <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
            xmlns:s="clr-namespace:wpfApplication1"> 

        <ResourceDictionary.MergedDictionaries> 
         <ResourceDictionary Source="pack://application:,,,/wpfApplication1;component/Resources/Styles/Shared.xaml"/> 
         <ResourceDictionary Source="pack://application:,,,/wpfApplication1;component/Resources/Styles/ToolBar.xaml"/> 
        </ResourceDictionary.MergedDictionaries> 

        <ToolBar x:Key="MyToolbar" Height="120"> 
         <ToolBar.Resources> 
          <BooleanToVisibilityConverter x:Key="boolToVis"/> 
         </ToolBar.Resources> 

         <GroupBox x:Name="tBtn" Header="Login" Style="{StaticResource ToolbarGroup}" Margin="5,3,3,3"> 
          <StackPanel Grid.Row="1" Orientation="Horizontal"> 
           <!--Login--> 
           <ToggleButton Margin="3" Width="55" Style="{StaticResource ToolBarButtonBaseStyle}" 
             HorizontalContentAlignment="Center"" 
             CommandTarget="{Binding ElementName=MyTestApp}"> 
            <ToggleButton.Content> 
             <Grid> 
              <Grid.RowDefinitions> 
               <RowDefinition Height="4*"/> 
               <RowDefinition Height="1*"/> 
              </Grid.RowDefinitions> 
              <Image Source="pack://application:,,,/wpfApplication1;component/Resources/Images/Login.png" Width="45"/> 
              <TextBlock Grid.Row="1" Text="New" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> 
             </Grid> 
            </ToggleButton.Content> 
           </ToggleButton> 
          </StackPanel> 
         </GroupBox> 

         <GroupBox Visibility="{Binding Path=IsChecked, ElementName=tBtn, Converter={StaticResource boolToVis}}" Header="File" Style="{StaticResource ToolbarGroup}" Margin="5,3,3,3"> 
          <StackPanel Grid.Row="1" Orientation="Horizontal"> 
           <!--File--> 
           <Button Margin="3" Width="55" Style="{StaticResource ToolBarButtonBaseStyle}" 
             HorizontalContentAlignment="Center" 
             Command="{x:Static ApplicationCommands.New}" 
             CommandTarget="{Binding ElementName=MyTestApp}"> 
            <Button.Content> 
             <Grid> 
              <Grid.RowDefinitions> 
               <RowDefinition Height="4*"/> 
               <RowDefinition Height="1*"/> 
              </Grid.RowDefinitions> 
              <Image Source="pack://application:,,,/wpfApplication1;component/Resources/Images/GenericDocument.png" Width="45"/> 
              <TextBlock Grid.Row="1" Text="New" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> 
             </Grid> 
            </Button.Content> 
           </Button> 
           <StackPanel Orientation="Vertical" Margin="0,2,0,2"> 
            <Button Margin="1" Padding="2" HorizontalContentAlignment="Left" 
              Style="{StaticResource ToolBarButtonBaseStyle}" 
              Command="{x:Static ApplicationCommands.Open}" 
              CommandTarget="{Binding ElementName=MyTestApp}"> 
             <Button.Content> 
              <Grid> 
               <Grid.ColumnDefinitions> 
                <ColumnDefinition/> 
                <ColumnDefinition/> 
               </Grid.ColumnDefinitions> 
               <Image Source="pack://application:,,,/wpfApplication1;component/Resources/Images/OpenFolder.png" Width="16"/> 
               <TextBlock Margin="3,0,3,0" Text="Open" VerticalAlignment="Center" Grid.Column="1"/> 
              </Grid> 
             </Button.Content> 
            </Button> 
            <Button Margin="1" Padding="2" HorizontalContentAlignment="Left" 
              Style="{StaticResource ToolBarButtonBaseStyle}" 
              Command="{x:Static ApplicationCommands.Save}" 
              CommandTarget="{Binding ElementName=MyTestApp}"> 
             <Button.Content> 
              <Grid> 
               <Grid.ColumnDefinitions> 
                <ColumnDefinition/> 
                <ColumnDefinition /> 
               </Grid.ColumnDefinitions> 
               <Image Source="pack://application:,,,/wpfApplication1;component/Resources/Images/Save.png" Width="16"/> 
               <TextBlock Margin="3,0,3,0" Text="Save" VerticalAlignment="Center" Grid.Column="1"/> 
              </Grid> 
             </Button.Content> 
            </Button> 
            <Button Margin="1" Padding="2" HorizontalContentAlignment="Left" 
              Style="{StaticResource ToolBarButtonBaseStyle}" 
              Command="{x:Static ApplicationCommands.Print}" 
              CommandTarget="{Binding ElementName=MyTestApp}"> 
             <Button.Content> 
              <Grid> 
               <Grid.ColumnDefinitions> 
                <ColumnDefinition/> 
                <ColumnDefinition /> 
               </Grid.ColumnDefinitions> 
               <Image Source="pack://application:,,,/wpfApplication1;component/Resources/Images/Print.png" Width="16"/> 
               <TextBlock Margin="3,0,3,0" Text="Print" VerticalAlignment="Center" Grid.Column="1"/> 
              </Grid> 
             </Button.Content> 
            </Button> 
           </StackPanel> 
          </StackPanel> 
         </GroupBox> 
        </ToolBar> 
       </ResourceDictionary> 

提前許多感謝的任何援助

回答

1

現在您的分組框被稱爲「tBtn」,但應該是你的切換按鈕。 (因爲你指的是它的財產IsChecked) 嘗試命名您的ToggleButton tBtn並重試

+0

嗨,抱歉,延遲這是一個錯字上傳我試着移動它,我仍然收到一個關於在資源中使用名稱的錯誤字典 – Psymon25