我目前正在执行http://www.windowsphonegeek.com/articles/Creating-a-WP7-Custom-Control-in-7-Steps步骤?在为WP7做一个自定义控件。我已经在普通的Windows手机肖像页面xaml文件中创建了我的控件(结合了一些控件),我不知道如何将它转换为在generic.xaml文件中工作(作为ResourceDictionary)。到目前为止它没有用。
我尝试使用Expression Blend进行转换,但我不知道该怎么做。
编辑:我发布了我的代码,它是一个显示动态时间的框。我还想添加用于提供日期的属性和用于框的颜色的另一个属性。
这是到目前为止的代码。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
xmlns:local="clr-namespace:CereTime">
<!-- Check xmlns:local im case of error -->
<Style TargetType="local:CereT1">
<!-- After specifing the custom properties in .cs file, implement them here -->
<Setter Property="Date" Value="{TemplateBinding Date}" /> <!-- Under check -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:CereT1">
<Canvas Background="YellowGreen" Width="100" Height="100" Name="DateBox" HorizontalAlignment="Left" VerticalAlignment="Top">
<StackPanel Orientation="Vertical" Height="100" Width="100">
<TextBlock Name="Month" Text="Month" Foreground="White" TextAlignment="Center" HorizontalAlignment="Center" FontSize="24" FontWeight="Bold" Margin="0,12,0,0" />
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,6,0,0">
<TextBlock Name="Date" Text="0" VerticalAlignment="Bottom" Margin="0,0,5,0" FontSize="26.667"/>
<TextBlock Name="No_Name" Text="|" FontSize="26.667" />
<TextBlock Name="Year" Text="Year" Margin="5,0,0,0" FontSize="26.667" />
</StackPanel>
</StackPanel>
</Canvas>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
请告诉我。 谢谢,
答案 0 :(得分:0)
虽然您可以将用户控件的样式移动到ResourceDictionary,但为什么在您的UserControl的相应XAML中具有该模板和模板时会感到烦恼?
简单设置MyUserControl.xaml内部,以及您想要更改的其他属性。
但是关于将自定义控件的样式分离到ResourceDictionary的整个部分与UserControls没有太大关系。也许你应该告诉我们真正错误是什么,而不是询问元问题。
答案 1 :(得分:0)
在尝试创建控件后,我遇到了同样的问题 解决方案是添加
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
进入 App.xaml
中的Application.Resources
标记