Silverlight Can';t设置资源字典中路径的样式
我在资源字典中为路径创建了一个样式,如下所示:Silverlight Can';t设置资源字典中路径的样式,silverlight,Silverlight,我在资源字典中为路径创建了一个样式,如下所示: <Style x:Key="HeaderPathStyle" TargetType="Path"> <Setter Property="Opacity" Value="0.8"/> <Setter Property="HorizontalAlignment" Value="Stretch"/> <Setter Property="VerticalAlignme
<Style x:Key="HeaderPathStyle" TargetType="Path">
<Setter Property="Opacity" Value="0.8"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="Stretch" Value="Fill"/>
<Setter Property="StrokeThickness" Value="0.5"/>
<Setter Property="Data" Value="M12.5,7 C47.333332,7 115.85664,7 117,7 C118.14336,7 122.1255,6.7291665 122.25,12 C122.3745,17.270834 122.25,18.333334 122.25,21.5 L12.5,21.5 z"/>
<Setter Property="Fill">
<Setter.Value>
<RadialGradientBrush GradientOrigin="0.699000000953674,0.792999982833862">
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.4" ScaleY="2.188"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform CenterX="0.5" CenterY="0.5"/>
<TranslateTransform X="0.017" Y="0.009"/>
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Color="#FF6C6C8E" Offset="1"/>
<GradientStop Color="#FFADD8E6" Offset="0"/>
</RadialGradientBrush>
</Setter.Value>
</Setter>
</Style>
<Path Style="{StaticResource HeaderPathStyle}"/>
然后按如下方式使用它usercontrol:
<Style x:Key="HeaderPathStyle" TargetType="Path">
<Setter Property="Opacity" Value="0.8"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="Stretch" Value="Fill"/>
<Setter Property="StrokeThickness" Value="0.5"/>
<Setter Property="Data" Value="M12.5,7 C47.333332,7 115.85664,7 117,7 C118.14336,7 122.1255,6.7291665 122.25,12 C122.3745,17.270834 122.25,18.333334 122.25,21.5 L12.5,21.5 z"/>
<Setter Property="Fill">
<Setter.Value>
<RadialGradientBrush GradientOrigin="0.699000000953674,0.792999982833862">
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.4" ScaleY="2.188"/>
<SkewTransform CenterX="0.5" CenterY="0.5"/>
<RotateTransform CenterX="0.5" CenterY="0.5"/>
<TranslateTransform X="0.017" Y="0.009"/>
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Color="#FF6C6C8E" Offset="1"/>
<GradientStop Color="#FFADD8E6" Offset="0"/>
</RadialGradientBrush>
</Setter.Value>
</Setter>
</Style>
<Path Style="{StaticResource HeaderPathStyle}"/>
但我有一个错误。若我用相同的设置直接在用户控件xaml中设置路径,并没有错误。
如何修复它?您不能仅仅创建一个资源字典,并期望放置在那里的所有资源都可以立即访问。如果要创建可从任何UserControl访问的资源,请将该资源放在
元素的App.xaml中
如果您不想将App.Xaml与各种资源混在一起,但仍希望它们在全球范围内可用,那么使用资源字典是正确的方法,但您需要在App.Xaml中创建对该字典的引用:-
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="YourDictionaryFile.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
谢谢。问题不在于我把风格放在哪里。我已经为资源字典设置了合适的位置,它已经有许多其他样式可以很好地工作。也许你应该描述更多你正在做的事情,我无法重现失败。