WPF用户控制资源
我在WPF用户控件程序集中制作了一个ResourceDictionary。我希望能够在这个UserControl中使用它,并将所有样式都放在这个单独的文件中 资源字典:WPF用户控制资源,wpf,xaml,resourcedictionary,Wpf,Xaml,Resourcedictionary,我在WPF用户控件程序集中制作了一个ResourceDictionary。我希望能够在这个UserControl中使用它,并将所有样式都放在这个单独的文件中 资源字典: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&g
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="c1BtnX1">
<Setter Property="Background" Value="Bisque"></Setter>
</Style>
</ResourceDictionary>
它的地址是用户控件程序集资源/mainResX.xaml
并且该视图位于同一程序集/Views/View.xaml中
我认为其用法可能是:
<Border Style="{StaticResource ResourceKey=c1BtnX1}"
BorderBrush="Black"
Width="20"
Height="20">
<TextBlock Text="X" />
</Border>
我还在UserControl中尝试了下面的代码,以定义每个控件的资源,但这种方式似乎也找不到资源
<UserControl ... >
<UserControl.Resources>
<ResourceDictionary Source="../Resources/mainResX.xaml" />
</UserControl.Resources>
我应该在哪里以及如何放置/定义此文件?我无法从提供的信息中判断您的文件结构 如果resource.xaml和control.xaml位于同一程序集的同一文件夹中,则只需引用mainResX.xaml,而不首先引用“/Resources”;否则,您需要以某种方式解释文件结构 他们在同一个集合中吗?您可以根据需要将尽可能多的“./”字符串添加到该位置,并使用文件夹(即,“../Resources/mainResX.xaml”)来“漫游”树 如果它们位于不同的程序集中,则需要指定包uri。实际上,您始终可以这样做,尽管在不必要时有点麻烦。这里有一个例子
<ResourceDictionary Source="pack://application:,,,/MyAssembly.Wpf;component/Resources/mainResX.xaml" />
HTH,Berryl我无法从提供的信息中判断您的文件结构 如果resource.xaml和control.xaml位于同一程序集的同一文件夹中,则只需引用mainResX.xaml,而不首先引用“/Resources”;否则,您需要以某种方式解释文件结构 他们在同一个集合中吗?您可以根据需要将尽可能多的“./”字符串添加到该位置,并使用文件夹(即,“../Resources/mainResX.xaml”)来“漫游”树 如果它们位于不同的程序集中,则需要指定包uri。实际上,您始终可以这样做,尽管在不必要时有点麻烦。这里有一个例子
<ResourceDictionary Source="pack://application:,,,/MyAssembly.Wpf;component/Resources/mainResX.xaml" />
HTH,Berryl我个人喜欢使用我的App.xaml来指定包含我在应用程序中全局使用的样式的xaml文件的“合并目录”。我通常有一个“DefaultStyles.xaml”来设置任何全局样式(比如,当您希望应用程序中的所有文本框看起来都一样,而不指定样式时)。然后我有一个“Styles.xaml”来设置特定的样式,或者你甚至可以为每个控件类型设置一个xaml,如果你真的有很多的话
您将这些文件放在app.xaml下的事实使它们成为应用程序的全局文件,不需要您不断地重新指定路径和字典。当然,这可能不适合所有的编码情况,但对我来说,这是一个节省时间的方法。我个人喜欢使用App.xaml来指定包含我在应用程序中全局使用的样式的xaml文件的“合并目录”。我通常有一个“DefaultStyles.xaml”来设置任何全局样式(比如,当您希望应用程序中的所有文本框看起来都一样,而不指定样式时)。然后我有一个“Styles.xaml”来设置特定的样式,或者你甚至可以为每个控件类型设置一个xaml,如果你真的有很多的话
您将这些文件放在app.xaml下的事实使它们成为应用程序的全局文件,不需要您不断地重新指定路径和字典。当然,这可能不适合所有的编码情况,但对我来说,这节省了时间。XAML文件的构建操作是否设置为Resource?(这是资源吗?我附近没有我的编码计算机…)它的构建操作没有,我将其更改为“嵌入式资源”,但我认为如果我想在交叉程序集上使用它,这将是一件好事。不确定这可能是“内容”或?!如果您是通过向导(资源字典)创建的,它的设置应该是正确的,您不应该更改它。我使用的是VS11,哪个向导?我只是点击了模块,在“Resources”文件夹中添加了一个ResourceDictionary。我通常右键点击项目并选择“Add->New Item”,然后你会有一个对话框(不是真正的wiz,对不起),在那里你可以选择ResourceDictionary。看看这个(不仅仅是答案),XAML文件的构建操作是否设置为Resource?(这是资源吗?我附近没有我的编码计算机…)它的构建操作没有,我将其更改为“嵌入式资源”,但我认为如果我想在交叉程序集上使用它,这将是一件好事。不确定这可能是“内容”或?!如果您是通过向导(资源字典)创建的,它的设置应该是正确的,您不应该更改它。我使用的是VS11,哪个向导?我只是点击了模块,在“Resources”文件夹中添加了一个ResourceDictionary。我通常右键点击项目并选择“Add->New Item”,然后你会有一个对话框(不是真正的wiz,对不起),在那里你可以选择ResourceDictionary。看看这个(不仅仅是阅读答案)相同的程序集,View.Xaml在Views文件夹中。资源在Resources文件夹中。Friend在我发表文章之前,我也尝试了“./Resources/mainResX.xaml”,但似乎UserControl视图仍然找不到它。此外,我将尝试您提供的内容,以提供有关任何进一步内部问题的更详细信息。同一程序集,View.Xaml位于Views文件夹中。资源在Resources文件夹中。Friend在我发表文章之前,我也尝试了“./Resources/mainResX.xaml”,但似乎UserControl视图仍然找不到它。此外,我将尝试您提供的内容,以提供有关任何进一步内部问题的更详细信息。感谢您提供的信息,此应用程序可能与您的应用程序有所不同,但了解您的想法对您很有好处,+1和谢谢。非常想知道,当您的一些资源位于基于您的方法的其他程序集中时,您如何处理它们?这与Berryl在回答中提到的方法相同。我不知道为什么它在你这方面不起作用,但是我现在无法访问我的编码计算机。谢谢你提供的信息,这个应用程序可能是一个