UWP:弹出最大宽度
UWP: Popup MaxWidth
我有一个 Popup,其中包含一个水平排列的 ItemsControl(如果需要我可以使用 ListBox)。
由于项目的总宽度可以超过屏幕的宽度,我需要限制弹出宽度的大小。
我的问题是如何限制弹出窗口的大小?我试过使用 MaxWidth,但它不起作用:(
<Popup x:Name="puSoldItems" IsOpen="False" IsLightDismissEnabled="True" MaxWidth="{Binding ActualWidth, ElementName=_This}" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.VerticalScrollMode="Auto">
<Grid Background="#f8202020" MaxWidth="{Binding ActualWidth, ElementName=puSoldItems}">
...
...
...
<ItemsControl x:Name="icItems" Grid.Row="1" Background="Transparent" Margin="10" MaxWidth="{Binding ActualWidth, ElementName=puSoldItems}" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.VerticalScrollMode="Auto">
...
...
...
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Padding="0" Margin="0 0 0 10" BorderBrush="#afafaf" BorderThickness="0 0 0 1" MinWidth="350">
...
...
...
<local:UPSoldItemList ItemsSource="{Binding Items}"></local:UPMenuModifier>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Popup>
谢谢...
我通过强制宽度部分解决了这个问题。
这是我所做的;我添加了 ScrollViewer 并将 ItemsControl 放入其中。然后当打开弹出窗口时,我设置 ScrollViewer
的大小
private void btnItem_Tapped(object sender, TappedRoutedEventArgs e)
{
svItems.MaxWidth = this.ActualWidth - 100; //for padding (50 left & 50 right)
svItems.MaxHeight = this.ActualHeight - 80; //for padding (40 top & 40 bottom)
puSoldItems.IsOpen = true;
}
有没有人有更好的解决办法,请post在这里
谢谢!
我有一个 Popup,其中包含一个水平排列的 ItemsControl(如果需要我可以使用 ListBox)。
由于项目的总宽度可以超过屏幕的宽度,我需要限制弹出宽度的大小。
我的问题是如何限制弹出窗口的大小?我试过使用 MaxWidth,但它不起作用:(
<Popup x:Name="puSoldItems" IsOpen="False" IsLightDismissEnabled="True" MaxWidth="{Binding ActualWidth, ElementName=_This}" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.VerticalScrollMode="Auto">
<Grid Background="#f8202020" MaxWidth="{Binding ActualWidth, ElementName=puSoldItems}">
...
...
...
<ItemsControl x:Name="icItems" Grid.Row="1" Background="Transparent" Margin="10" MaxWidth="{Binding ActualWidth, ElementName=puSoldItems}" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.VerticalScrollMode="Auto">
...
...
...
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Padding="0" Margin="0 0 0 10" BorderBrush="#afafaf" BorderThickness="0 0 0 1" MinWidth="350">
...
...
...
<local:UPSoldItemList ItemsSource="{Binding Items}"></local:UPMenuModifier>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Popup>
谢谢...
我通过强制宽度部分解决了这个问题。
这是我所做的;我添加了 ScrollViewer 并将 ItemsControl 放入其中。然后当打开弹出窗口时,我设置 ScrollViewer
的大小private void btnItem_Tapped(object sender, TappedRoutedEventArgs e)
{
svItems.MaxWidth = this.ActualWidth - 100; //for padding (50 left & 50 right)
svItems.MaxHeight = this.ActualHeight - 80; //for padding (40 top & 40 bottom)
puSoldItems.IsOpen = true;
}
有没有人有更好的解决办法,请post在这里
谢谢!