更改AppBarButton图标

时间:2015-08-10 22:41:26

标签: c# xaml uwp windows-10 winrt-xaml

在我的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

问题是什么并修复它?

1 个答案:

答案 0 :(得分:5)

它不起作用'因为Icon是引用类型。它永远不会等于SymbolIcon的新实例。

在这种情况下,您应该使用AppBarToggleButton,并订阅CheckedUnchecked个事件。

<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);
}