2016-06-15 10 views
0

私はWPFでサイドメニューを作成しました。ここでは、XAMLは次のとおりです。ここでサイドメニューが選択されていることを動的に示します。

 <Rectangle VerticalAlignment="Stretch" Width="1" Margin="2" Stroke="Black" /> 
     <MenuItem Header="Remove Headers" Click="MenuItem_Click_RH" /> 
     <MenuItem Header="Get Headers" Click="MenuItem_Click_GH" /> 
     <MenuItem Header="Count Delimiters" Click="MenuItem_Click_CNTD" /> 
     <Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" /> 
     <MenuItem Header="Close" Click="MenuItem_Click_Close" /> 
    </Menu> 

は私のクリックのコードは次のとおりです。

 private void MenuItem_Click_CNTD(object sender, RoutedEventArgs e) 
     { 
      //*** Count Delimiters Menu Click *** 

      // ... Cast sender object. 
      System.Windows.Controls.MenuItem item = sender as System.Windows.Controls.MenuItem; 
      // ... Change Title of this window. 
      Title = "Process " + item.Header + " Files"; 


      lblDCTitle.Content = "Process to get mumber of delimiters in a large file."; 
      grdHeaderRows.Visibility = Visibility.Hidden; 
      mnuSideMenu.Height = 360; 
      grdMain.Height = 360; 
      grdDelimiterCount.Height = 400; 
      grdDelimiterCount.Visibility = Visibility.Visible; 
     } 

このすべてが正常に動作しますが、私がクリックされたメニュー項目を強調したいと思います。私はこれを行うためのコードを見つけることができません。誰でもアイデアはありますか?

ありがとうございました

答えて

0

おかげ#Alexandru Turcanはあなたの提案のために私がすることができました。このようにする、私はやる多くのメニュー項目を持たず、これは私にとって完璧に機能します。私はこのコードを私の各menu_clickルーチンに入れました。

miRH.Background = SystemColors.ControlDarkBrush; 
miGH.Background = new SolidColorBrush(Color.FromArgb(100, 232, 249, 246)); 
miCD.Background = new SolidColorBrush(Color.FromArgb(100, 232, 249, 246)); 
0

最初のものが最初です。どのように項目を強調表示したいですか?背景ブラシを変更したい場合最初に気になったのは、クリックされたmenuitemの背景ブラシを設定することですが、これはスーパーハードコードされます。これは、クリックイベントハンドラごとにバックグラウンドブラシを設定する必要があるためです。

最初のオプションの他、より最適化されたバージョンがである:

  • は、定義された2つのブラシ(一DefaultColor、他のSelectedColor)を有します。
  • あなたはYourMenu.Childrenプロパティからによってそれらを得ることができます(List<MenuItems>ですべてのメニュー項目を持っているすべてのメニュー項目にサブスクライブイベントハンドラを持っているあなたは、このようにそれを行うことができます。。。YourMenuItemName.Click+=YourEventHanderName イベントヘンデルがの色が変わりますMenuItemの残りのためSelectedColorにし、DefaultColorブラシに項目をクリックし、

プリティ何とかよりダイナミックその後、ハードコードされた以前のバージョン

関連する問題