从库到WPF主应用程序引用外部xaml样式

时间:2015-07-24 13:00:17

标签: wpf resources

我在VB.NET上有一个主App.exe WPF。应用程序有一个库C#.NET。 应用参考项目库。

我尝试从外部库中获取样式但是会出错。

这是我的“Sharp.LIB”项目:“Dictionaries / Buttons.xaml”

  <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">    
<Style TargetType="Button" x:Key="MyButton">        
    <Setter Property="Background" Value="Green" />
    <Setter Property="Width" Value="100" />
    <Setter Property="Height" Value="40" />
    <Setter Property="Content" Value="Hello from style" />        
</Style>    

这是我的第二个文件“General.xaml”来表示所有样式。现在我只合并一个Buttons样式。

  <ResourceDictionary
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Dictionaries/Buttons.xaml" />
</ResourceDictionary.MergedDictionaries>

这是来自Main vb.net应用程序的用户控件。

<UserControl x:Class="MyWF.UC"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:ms="clr-namespace:MyStyles;assembly=MyStyles" mc:Ignorable="d" 
         d:DesignHeight="100" d:DesignWidth="100">
<UserControl.Resources>        
    <ResourceDictionary 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MyStyles;component/General.xaml" />       
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>        
</UserControl.Resources>

<Grid>
    <Button Style="{StaticResource MyButton}" />
</Grid>

这是我的第二次尝试。根据丢失的文件,同样的错误再次失败。

<UserControl x:Class="MyWF.UC"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:ms="clr-namespace:MyStyles;assembly=MyStyles" mc:Ignorable="d" 
         d:DesignHeight="100" d:DesignWidth="100">
<UserControl.Resources>        
    <ResourceDictionary 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/MyStyles;component/General.xaml" />      
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>        
</UserControl.Resources>

<Grid>
    <Button Style="{StaticResource MyButton}" />
</Grid>

错误: 附加信息:'Set property'System.Windows.ResourceDictionary.Source'引发了一个异常。行号“27”和行位置“18”。

{“找不到资源'general.xaml'。”}

请帮助。

0 个答案:

没有答案