更改 AppBarButton 图标
Changing AppBarButton Icon
在我的 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)))
总是returnFALSE
有什么问题并解决它?
它不会起作用,因为 Icon
是引用类型。它永远不会等于 SymbolIcon
.
的新实例
在这种情况下,您应该使用 AppBarToggleButton
并订阅 Checked
和 Unchecked
事件。
<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);
}
在我的 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)))
总是returnFALSE
有什么问题并解决它?
它不会起作用,因为 Icon
是引用类型。它永远不会等于 SymbolIcon
.
在这种情况下,您应该使用 AppBarToggleButton
并订阅 Checked
和 Unchecked
事件。
<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);
}