ユーザー設定がある場合ToggleThis
この設定をユーザーがメニューで利用できるようにしたいのですが、たとえば、Settings/ToggleSettingsと言います。それをクリックします。クリックするたびに、ユーザー設定のtrue / falseを切り替えるだけでなく、menuItemアイコンを更新して実際の設定を表示する必要があります。
私はこれを使用して行うことができます
XAML
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Menu IsMainMenu="True">
<MenuItem Header="_Settings">
<MenuItem Header="_Toggle" Name="ToggleSettings" Click="MenuItem_Click">
<MenuItem.Icon>
<Image Source="Images/Toggle.png" />
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</Menu>
</Grid>
</Window>
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
if (ToggleSettings.Icon == null)
{
Uri Icon = new Uri("pack://application:,,,/Images/" + "Toggle.png");
ToggleSettings.Icon = new Image
{
Source = new BitmapImage(Icon)
};
Properties.Settings.Default.toggleThis = true;
}
else
{
ToggleSettings.Icon = null;
Properties.Settings.Default.toggleThis = false;
}
}
}
}
ただし、これは正しい方法ではないことを私は知っています。たとえば、起動時にメニューが以前の設定に基づいて正しい状態にならない可能性があります。問題は、正しい方法がわからないことです。誰かが私にこれを行う正しい方法についてのいくつかの指針を与えることができますか?
MenuItemのアイコンや値の両方でバインディングを使用する必要があると思いますが、どこから始めればよいのかよくわかりません。
ありがとうございました