
[英]Loading theme specific Silverlight Resource Dictionary inside another dictionary at runtime
[英]Resource Dictionary in Silverlight
我已经在努力尝试制作资源字典了几周了。 如果要添加按钮或复选框,资源字典将在其中格式化。 我遇到了几个问题,但按钮无法正常工作。我在Visual Studio中使用Silverlight。这是App.xaml部分下的代码。这部分应该没有任何问题,但我要提出以防万一。
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources_Theme\Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
问题所在的位置是“将其注释为复选框”下面的代码。 我收到的错误是解析规则PropertyElement :: =中的意外ATTRIBUTE。 物业内容? ENDTAG ..我不确定如何解决此问题,并且我尝试了几件事。 该按钮可以正常工作,但复选框不能正常工作。 复选框和按钮之间的代码应该非常相似,因此我不确定代码哪里有问题。 如果有人可以帮助我,那就太好了。 另外,作为第二个问题,有人可以告诉我如何使Foreground =“ White” FontFamily =“ Arial Bold FontSize =” 16“才能与按钮一起使用。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
x:Class="DanaTraining.App">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
<!--Button-->
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Rectangle RadiusY="20" RadiusX="20" Stroke="Black">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0.828"/>
<GradientStop Color="#FF4F1818" Offset="0.491"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--CheckBox-->
<Style TargetType="CheckBox" x:Key="CheckBoxStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Grid>
<CheckBox>
<CheckBox.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0.828"/>
<GradientStop Color="#FF4F1818" Offset="0.491"/>
</LinearGradientBrush>
</CheckBox.Foreground>
</CheckBox>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
最后,如果有人能告诉我要为Silverlight找到一个资源字典模板,那将是很棒的。 我真的很想
您正在重新模板化复选框,我认为您不需要做,因为您所做的只是改变前景。 与其直接为复选框设置模板属性,不如直接设置前景。
为控件创建新模板是WPF的一项非常强大的功能,但是您负责将新模板连接到“命令和事件”。 我认为这可能是因为您收到一个“不起作用”的复选框。
<!--CheckBox-->
<Style TargetType="CheckBox" x:Key="CheckBoxStyle">
<Setter Property="Foreground">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0.828"/>
<GradientStop Color="#FF4F1818" Offset="0.491"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.