如何提取拍打画布的背景颜色?

时间:2014-11-29 18:31:26

标签: c# background windows-store-apps wpf-controls winrt-xaml

我想让用户选择他们想要用于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画布的背景颜色?

1 个答案:

答案 0 :(得分:1)

我猜你错过了一对括号。

Color colour = ((Canvas)sender).Background;

编译器正在Background sender对象中寻找object属性。