2011-12-29 105 views
0

我有一些資源app.xml的在裏面,如:如何使用用戶控制的XAML應用程序資源

<Application.Resources> 
    <con:EnumToVisibilityConverter x:Key="EnumToVisibilityConverter" /> 
    <con:NegateBoolConverter x:Key="NegateBoolConverter" /> 
    <Style TargetType="FrameworkElement" x:Key="BaseStyle"> 
     <Setter Property="HorizontalAlignment" Value="Stretch" /> 
     <Setter Property="VerticalAlignment" Value="Stretch" /> 
     <Setter Property="Margin" Value="3"/> 
     <Setter Property="Width" Value="120"/> 
     <Setter Property="Height" Value="25" /> 
    </Style> 
    <Style TargetType="CheckBox" BasedOn="{StaticResource BaseStyle}"> 
    </Style> 
    <Style TargetType="DatePicker" BasedOn="{StaticResource BaseStyle}"> 
    </Style> 
    <Style TargetType="TextBox" BasedOn="{StaticResource BaseStyle}"> 

    </Style> 
    <Style TargetType="Label" BasedOn="{StaticResource BaseStyle}"> 

    </Style> 

    <Style TargetType="Button" BasedOn="{StaticResource BaseStyle}"> 
     <Setter Property="Width" Value="75" /> 
     <Setter Property="Height" Value="23" /> 
     <Setter Property="Margin" Value="5,2,2,5" /> 
     <Setter Property="HorizontalAlignment" Value="Left" /> 
     <Setter Property="VerticalAlignment" Value="Top" /> 
    </Style> 

</Application.Resources> 

我想使用它們在我的用戶控制的XAML如下:

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="App.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
</UserControl.Resources> 

由於我的用戶控件xaml位於View目錄中,因此係統不接受上述提及的語法,並且抱怨說它找不到view/app.xaml。我如何添加到源的路徑,以便它可以找到它?

回答

1

你不需要那樣做。應用程序資源可用遍及應用,因此,所有你需要做的是要麼這在XAML:

Style="{StaticResource BaseStyle}" 

或者在C#(控件的代碼中):

Style baseStyle = (Style)this.FindResource("BaseStyle"); 
+0

的風格的作品,但不是轉換器。有什麼辦法可以像轉換器一樣做同樣的事情嗎? – mans 2011-12-29 20:56:24

+0

我不明白爲什麼轉換器不起作用。你只需要以同樣的方式來完成。 – Carlo 2011-12-29 22:13:28

相關問題