0

このmsdnの記事のアプリ設定でサウンドのブール変数を作成しました。toggleswitch今、ボリュームのオン/オフを設定できるメニューに入れたいと思っています。この回答のようなものを使用することを考えています。しかし、それが私の問題に適しているかどうかはわかりません。画像の変数を AppSettings に追加する必要がありますか、それともこれを行うためのより良い方法はありますか?

私の解決策:

xaml で:

<ToggleButton Name="tgbSound" BorderThickness="0" Background="Transparent"
                      Checked="tgbSound_Checked"
                      Unchecked="tgbSound_Unchecked"
                      IsChecked="{Binding Source={StaticResource appSettings}, Path=SoundSetting, Mode=TwoWay}">
        </ToggleButton>

xaml ページのコード:

private void tgbSound_Checked(object sender, RoutedEventArgs e)
{
    SetTgbSoundContentTo("Images/volumeon.png");
}

private void tgbSound_Unchecked(object sender, RoutedEventArgs e)
{
    SetTgbSoundContentTo("Images/volumeoff.png");
}

private void SetTgbSoundContentTo(string uri)
{
    Image volumeoff = new Image();
    ImageSource zdroj = new BitmapImage(new Uri(uri, UriKind.Relative));
    volumeoff.Source = zdroj;
    volumeoff.Height = 40;
    if (tgbSound == null)
        return;
    tgbSound.Content = volumeoff;
    tgbSound.Background = new SolidColorBrush(Colors.Transparent);
}
4

1 に答える 1

4

両方できます。どちらの方法についても、共通のアプローチをお勧めします。

AppSettings に Boolean プロパティを作成し、viewmodel 内にそのラッパーを作成します。次に、ビュー モデルのラッパー プロパティを UI 要素に (双方向で) バインドします。UI 要素は、トグル スイッチまたはイメージの両方にすることができます。の場合はtoggleswitchtwo way binding意志自体でうまくいきますが、画像の場合は、タップ イベントを処理し、コード内のオン/オフ状態とブール値を自分で処理する必要があります。

于 2013-01-07T05:15:45.713 に答える