如何在Windows Phone 8.1中创建一个内容适合屏幕的弹出窗口?

时间:2014-07-10 16:10:15

标签: popup windows-phone windows-phone-8.1

我想创建一个Popup并将用户控件添加到它。

我已经创建了一个UserControl,我将其添加到Popup中,如下所述。它几乎正常工作,但不幸的是它出现了这样,文本拒绝换行,即使我已指定TextWrapping="Wrap"

enter image description here

这就是我正在做的事情:

用户控制:

<UserControl
    x:Class="App3.MyPopupContent"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App3"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300"
    d:DesignWidth="400">

    <Border BorderThickness="10" BorderBrush="{StaticResource PhoneAccentBrush}">
        <StackPanel Background="White">
            <TextBlock Text="My Popup" TextAlignment="Left" 
                       FontSize="40" 
                       Foreground="Black"/>

            <TextBlock Text="You can position a popup by setting the PlacementTarget, PlacementRectangle, Placement, HorizontalOffset, and VerticalOffsetProperty properties." 
                   FontSize="20"
                   TextWrapping="Wrap" 
                   Foreground="Black"/>

        </StackPanel>
    </Border>

</UserControl>

在MainPage.xaml.cs中:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();

        Popup p = new Popup();
        p.Child = new MyPopupContent();
        p.IsOpen = true;
    }
}

我需要做些什么才能让Popup及其内容保持在屏幕范围内?

2 个答案:

答案 0 :(得分:3)

我认为您需要设置Popup的子控件的宽度和高度。

尝试在MainPage的加载事件中打开Popup,并将子项的宽度和高度设置为MainPage的ActualWidth和ActualHeight。

答案 1 :(得分:0)

它对我有用。你可以试试这个。

<UserControl .....
   <Grid x:Name="LayoutRoot"
          Background="#920101">
    </Grid>
</UserControl>

LayoutRoot.Width = App.Current.Host.Content.ActualWidth;
LayoutRoot.Height = App.Current.Host.Content.ActualHeight;