2009-12-03 65 views
3

我創建一個樣式爲如下資源字典路徑:無法設置樣式路徑資源字典

<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中設置Path,則不會出錯。 如何解決它?

+0

也許你應該更多地描述你在做什麼,我無法重現失敗。 – AnthonyWJones 2009-12-03 22:28:45

回答

1

你不能只是創建一個資源字典,並期望放置在那裏的所有資源立即訪問。如果要創建任何UserControl可用的資源,請將該資源放入<Application.Resources>元素的App.xaml中。

如果您不想使用各種資源來整理App.Xaml,但仍然希望它們在全局範圍內可用,那麼使用資源字典是正確的方法,但是您需要創建對該字典的引用App.xaml: -

<Application.Resources> 
    <ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="YourDictionaryFile.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 
+0

謝謝。問題不在於我放置風格的地方。我已經爲資源字典設置了正確的位置,已經有很多其他樣式可以正常工作。 – KentZhou 2009-12-03 19:50:00