Mat*_*hew 4 c# xaml windows-phone-7 windows-phone-8
我已经宣布了一种颜色,我将在我的应用程序中大量使用,我希望能够在页面中调用该特定颜色.这种颜色最有可能用于XAML以及后面的代码.在App.xaml我有
<Color x:Name="Blue" A="255" R="35" G="85" B="145"/>
Run Code Online (Sandbox Code Playgroud)
但是我如何在我的Page的UI和代码中调用它呢?
实际上要注意,上面在App.xaml中设置颜色会在启动时出现调试错误?
public App()
{
// Standard XAML initialization
InitializeComponent(); //XamlParseException occurs here
...
}
Run Code Online (Sandbox Code Playgroud)
编辑**
SolidColorBrush更新无法正常工作
我有一个Slider控件和两个在XAML中声明的ToggleSwitch控件,我希望在XAML中更改Slider前景并更改后面代码中的ToggleSwitch控件.两者都不起作用
App.xaml中
<Color x:Key="ThemeColorBlue" A="255" R="35" G="85" B="145"/>
<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>
Run Code Online (Sandbox Code Playgroud)
因此,当尝试在XAML中更改Slider控件前景时,我没有使用错误
Foreground="{StaticResource ThemeBrushBlue}"
Run Code Online (Sandbox Code Playgroud)
但是当在后面的代码中更改ToggleSwitch前景时,我得到一个错误说明 Cannot implicitly convert type 'object' to 'System.Windows.Media.Brush'
this.ToggleSwitch.SwitchForeground = Application.Current.Resources["ThemeBrushBlue"];
Run Code Online (Sandbox Code Playgroud)
Cle*_*ens 22
您通常会将颜色添加到Application.Resourcesa Key而不是Name:
<Application.Resources>
<Color x:Key="Blue" A="255" R="35" G="85" B="145"/>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
现在您可以在XAML中访问它StaticResource,例如:
<SolidColorBrush Color="{StaticResource Blue}"/>
Run Code Online (Sandbox Code Playgroud)
或者像这样的代码:
var color = (Color)Application.Current.Resources["Blue"];
Run Code Online (Sandbox Code Playgroud)
我认为问题是
<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>
Run Code Online (Sandbox Code Playgroud)
只需重复颜色即可:
<SolidColorBrush x:Key="ThemeBrushBlue" Color="#235591"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6724 次 |
| 最近记录: |