2015-09-06 54 views
1

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

<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。 我在这里错过了什么?

回答

3

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(); 
+0

感谢。对你来说是+1,对MSDN来说是-1对于误导性的API文档 –

+0

如果我有在xaml中生成的内容并且想删除边界怎么办?因为我不想在c#中创建整个xaml – AbsoluteSith