繁体   English   中英

Silverlight中的资源字典

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM