我想让用户选择他们想要用于AppBar的颜色。我有这样的XAML:
<StackPanel Orientation="Horizontal">
<Canvas Background="Aqua" Width="20" Height="20" VerticalAlignment="Center" Tapped="CanvasColor_Tapped"></Canvas>
<TextBlock Text="Aqua" VerticalAlignment="Center"></TextBlock>
</StackPanel>
......以及处理程序的这个想法:
private void CanvasColor_Tapped(object sender, TappedRoutedEventArgs treArgs)
{
if (sender is Canvas)
{
Color colour = (Canvas) sender.Background;
}
}
...但是编译器和我的头盖骨没有合作/不在同一波长上。具体来说,我得到:
'object'不包含'Background'的定义,并且没有扩展方法'Background'可以找到接受'object'类型的第一个参数(你是否缺少using指令或汇编引用?)
我需要做什么才能在所有Canvas控件中共享一个事件处理程序来提取tapped画布的背景颜色?
答案 0 :(得分:1)
我猜你错过了一对括号。
Color colour = ((Canvas)sender).Background;
编译器正在Background
sender
对象中寻找object
属性。