我想知道,是否可以更精确地设置 Windows Phone 8 Toolkit 中的 CustomMessageBox 样式?
在这种情况下,我希望标题和实际消息/按钮文本/边框具有不同的前景色。
我也可以在 XAML 中定义 Box 吗?
我想知道,是否可以更精确地设置 Windows Phone 8 Toolkit 中的 CustomMessageBox 样式?
在这种情况下,我希望标题和实际消息/按钮文本/边框具有不同的前景色。
我也可以在 XAML 中定义 Box 吗?
不应该太费力。您所要做的就是子类CustomMessageBox
,为单独的前景色添加依赖属性,然后修改默认控件模板。(您将看到默认模板Foreground
对标题、标题、消息和按钮使用相同的属性。)
例如,让我们以标题颜色为例。首先添加一个依赖属性:
public class ExtendedCustomMessageBox : CustomMessageBox
{
public Brush TitleForeground
{
get { return (Brush)GetValue(TitleForegroundProperty); }
set { SetValue(TitleForegroundProperty, value); }
}
public static readonly DependencyProperty TitleForegroundProperty =
DependencyProperty.Register("TitleForeground", typeof(Brush), typeof(ExtendedCustomMessageBox), null);
public CustomMessage()
: base()
{
DefaultStyleKey = typeof(CustomMessageBox);
}
}
现在修改控制模板的适当部分。使用 aTemplateBinding
来引用新属性:
<TextBlock
x:Name="TitleTextBlock"
Text="{TemplateBinding Title}"
Foreground="{TemplateBinding TitleForeground}"
Visibility="Collapsed"
Margin="24,16,24,-6"
FontFamily="{StaticResource PhoneFontFamilySemiBold}"/>
(请注意,您可以在 WP8 工具包下载的文件中找到完整的控制模板Themes\Generic.xaml
。只需复制粘贴到您的项目资源中,然后进行修改。)