Windows Phone 8.1中ContentDialog的边框

本文关键字:ContentDialog 边框 Phone Windows | 更新日期: 2023-09-27 18:11:36

我正在开发Windows Phone 8.1 (Windows RT应用程序)的应用程序。我想显示一个带有白色边框的ContentDialog,我可以看到对话框,但是我无法看到任何边框。我已经为它定义了我自己的xaml,因为我经常使用这个对话框,我想在一个地方有共同的设置。下面是XAML:

<ContentDialog
    x:Class="MyNamespace.MyDialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Margin="10,330,10,0"
    Height="200"
    Width="340"
    Padding="10"
    Background="Black"
    BorderBrush="White" 
    BorderThickness="10">
</ContentDialog>

我从代码(c#)中使用它,像这样:

mPopup = new MyDialog()
{
    Title = "",
    Content = "Hello World",
    PrimaryButtonText = "OK",
    IsSecondaryButtonEnabled = false,
};
mPopup.ShowAsync();

我也试过从cs设置边界属性,但没有任何运气。基于MSDN文档,你可以为ContentDialog指定BorderBrush和BorderThickness。我遗漏了什么?

Windows Phone 8.1中ContentDialog的边框

ContentDialog类扩展了ContentControl,因此包含了BorderBrushBorderThickness属性,但是在显示时它们被忽略。

要创建边框,您需要指定具有边框的自定义内容,例如Border元素,TextBlock作为其子元素:

var mPopup = new ContentDialog()
{
    Title = "",
    PrimaryButtonText = "OK",
    IsSecondaryButtonEnabled = false,
    Content = new Border()
    {
        HorizontalAlignment = HorizontalAlignment.Stretch,
        BorderThickness = new Thickness(10),
        BorderBrush = new SolidColorBrush(Colors.White),
        Child = new TextBlock()
        {
            Text = "Hello World",
            FontSize = 20,
            Foreground = new SolidColorBrush(Colors.White),
            HorizontalAlignment = HorizontalAlignment.Left,
            VerticalAlignment = VerticalAlignment.Top
        }
    }
};
mPopup.ShowAsync();