我想创建一个Popup并将用户控件添加到它。
我已经创建了一个UserControl,我将其添加到Popup中,如下所述。它几乎正常工作,但不幸的是它出现了这样,文本拒绝换行,即使我已指定TextWrapping="Wrap"
:
这就是我正在做的事情:
用户控制:
<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及其内容保持在屏幕范围内?
答案 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;