请告诉我App.xaml和Generic.xaml之间的区别,我对这两者感到困惑!
答案 0 :(得分:6)
App.xaml
是Application类的XAML部分 - 您可以在其中定义应用程序范围的逻辑和资源的单一集中位置。虽然位于项目的Generic.xaml
目录中的Themes
是一个字典,您可以在其中为所有自定义控件定义默认样式。当Themes
文件夹中没有特定于Windows主题的字典时,将使用此字典。例如,您可能具有Themes
目录的以下结构:
MyProject
- Themes
- Generic.xaml // Default styles if current theme is non of the themes below
- Classic.xaml // Styles for “Classic” Windows 9x/2000 look on Windows XP.
- Luna.NormalColor.xaml // Styles for default blue theme on Windows XP.
- Luna.Homestead.xaml // Styles for olive theme on Windows XP.
- Luna.Metallic.xaml // Styles for silver theme on Windows XP.
- Royale.NormalColor.xaml // Styles for default theme on Windows XP Media Center Edition.
- Aero.NormalColor.xaml // Styles for default theme on Windows Vista
如果您希望自定义控件在任何Windows主题上看起来相同,则只需创建Generic.xaml。
所以,基本上你应该只使用Generic.xaml
为自定义控件定义样式,并为其他所有内容使用App.xaml
(例如你的画笔,颜色等等或你自己的标准控件样式)。 / p>
另请参阅此问题的答案:What is so special about Generic.xaml?
答案 1 :(得分:1)
App.xaml用于应用程序范围的资源,并且始终使用。
Generic.xaml用于自定义控件的模板和样式,并且在未在控件级别指定其他样式或模板时使用。
答案 2 :(得分:1)
App.xaml是应用程序级资源的容器。
Generic.xaml是一个资源文件,适用于所有不基于自定义或默认主题的控件。
答案 3 :(得分:1)
App.xaml
用于应用程序范围的资源,因此可以包含对其他XAML资源的引用。
<Application
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" x:Class="App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/ValidationStyles.xaml"/>
<ResourceDictionary Source="Themes/ControlStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
这允许您在给定的XAML文件中隔离样式以实现可管理性,然后在应用程序中使用该文件,因为它在运行时被合并到应用程序中。
generic.xaml
用作默认自定义控件默认样式的容器。在解析给定类型的样式时,框架将在Themes
目录中查找generic.xaml
。