5

私の Windows 10 ユニバーサル アプリケーションでは、ページに AppBarButton があります。

<AppBarButton x:Name="PinBtn" Icon="Pin" Click="PinBtn_Click"/>

Icon="Pin"ピンを外すかどうか、またはその逆かどうかを確認したい。

だから私はこのようにコーディングしようとしました:

  private void PinBtn_Click(object sender,RoutedEventArgs e)
    {
        if(PinBtn.Icon == new SymbolIcon((Symbol.Pin)))
        {
            PinBtn.Icon = new SymbolIcon(Symbol.UnPin);
        }
        else {
            PinBtn.Icon = new SymbolIcon(Symbol.Pin);
        }
    }

問題 :(PinBtn.Icon == new SymbolIcon((Symbol.UnPin)))常にFALSEを返す

問題とその修正は何ですか?

4

1 に答える 1

6

Icon参照型であるため、機能しません。の新しいインスタンスと等しくなることはありませんSymbolIcon

AppBarToggleButtonこの場合は代わりにa を使用し、 CheckedandUncheckedイベントにサブスクライブする必要があります。

<AppBarToggleButton x:Name="PinToggle" Icon="Pin" Checked="PinToggle_Checked" Unchecked="PinToggle_Unchecked" />

private void PinToggle_Checked(object sender, RoutedEventArgs e)
{
    PinToggle.Icon = new SymbolIcon(Symbol.UnPin);
}

private void PinToggle_Unchecked(object sender, RoutedEventArgs e)
{
    PinToggle.Icon = new SymbolIcon(Symbol.Pin);
}
于 2015-08-10T23:01:43.273 に答える