【发布时间】:2014-11-30 16:47:30
【问题描述】:
我想响应画布上的点击并将画布背景的值存储在应用设置中,以便我可以将该值分配给 AppBar/命令栏。所以我在用户控件中有这个 XAML:
<StackPanel Orientation="Horizontal">
<Canvas Background="Aqua" Width="20" Height="20" VerticalAlignment="Center" Tapped="CanvasColor_Tapped"></Canvas>
<TextBlock Text="Aqua" VerticalAlignment="Center" Tapped="CanvasColor_Tapped" ></TextBlock>
</StackPanel>
.. 处理程序是:
private void CanvasColor_Tapped(object sender, TappedRoutedEventArgs treArgs)
{
if (sender is Canvas)
{
Brush colour = ((Canvas)sender).Background;
String brushColorAsStr = colour.ToString();
IAppSettings appSettings;
if (App.SaveSettingsLocally)
{
appSettings = new AppSettingLocal();
}
else
{
appSettings = new AppSettingsRoaming();
}
appSettings.SaveSetting(VisitsConsts.APP_BAR_COLOR_SETTING, brushColorAsStr);
}
}
然而,brushColorAsStr 的值只是“Windows.UI.XAML.Media.SolidColorBrush”(我希望它类似于“Magenta”或“Windows.UI.XAML.Media.SolidColorBrush.Magenta”)
如何获取背景的实际值而不仅仅是其类型?
更新
我不明白如何实施 SLaks 的回答;我试过了:
Brush brsh = ((Canvas) sender).Background;
//var color = (SolidColorBrush)brsh.
//var color = ((SolidColorBrush) sender).Color;
//var color = (SolidColorBrush).((Canvas)sender).Color;
【问题讨论】:
标签: c# background windows-store-apps brush solidcolorbrush