Luí*_*oni 4 xaml microsoft-metro windows-8
我从Windows 8 C#XAML用户和自定义控件示例开始并移动文件
Themes/Generic.xaml
BasicCustomControl.cs
BasicUserControl.xaml
BasicUserControl.xaml.cs
ImageWithLabelControl.cs
Run Code Online (Sandbox Code Playgroud)
到名为的Metro类库Controls,在UserAndCustomControls项目中引用它并更正对local:...引用的引用xmlns:local="using:Controls".这非常有效.
但是如果"Style.xaml"在类库中创建一个资源字典
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Controls">
<Color x:Key="ColorBackground">Red</Color>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
并包含在ScenarioList.xaml文件中
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Controls;component/Style.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
Run Code Online (Sandbox Code Playgroud)
我收到运行时错误
XamlParseException
Failed to assign to property 'Windows.UI.Xaml.ResourceDictionary.Source'.
Run Code Online (Sandbox Code Playgroud)
如果我尝试将颜色应用于网格
<Grid>
<Grid.Background>
<SolidColorBrush Color="{StaticResource ColorBackground}" />
</Grid.Background>
<ListBox x:Name="Scenarios" ...
[...]
</Grid>
Run Code Online (Sandbox Code Playgroud)
[问]问题是,如何在Metro应用程序中正确声明,引用和使用外部样式?我的想法是创建可重用的控件和作为单个dll文件提供的常见样式.
小智 10
您的源路径错误,因为不支持组件语法.假设您的控件库DLL被称为"控件",那么它将是这样的:
<ResourceDictionary Source="ms-appx:///Controls/Files/Style.xaml" />
Run Code Online (Sandbox Code Playgroud)
您可以查看http://timheuer.com/blog/archive/2012/03/07/creating-custom-controls-for-metro-style-apps.aspx以获得更深入的解释.
| 归档时间: |
|
| 查看次数: |
5609 次 |
| 最近记录: |