更改AppBarButton图标

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 问题和解决方法是什么?
1个回答

6

这不会起作用,因为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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接