使弹出窗口大小始终等于其内容的大小

问题描述 投票:0回答:1

我想知道是否可以使社区工具包弹出窗口的大小自动设置为其内容的大小?例如,它包含绑定到项目列表的列表视图。如果我在设计时(而不是运行时)添加新项目,我可以打开弹出窗口代码隐藏并使弹出窗口更长,如

Size = new(200, 300);
->
Size = new(200, 350);
,但如果弹出窗口足够智能,可以自动将其大小扩展为正确的大小,那就更好了其内容。

以防万一再次澄清:仅谈论静态内容,其大小在运行时不会改变,但可以在设计时对样式进行大量实验,并且不希望每次都随之更新弹出窗口大小。谢谢

xamarin xamarin.forms .net-maui maui-community-toolkit
1个回答
0
投票

我找到了解决这个问题的方法。它对我有用。 (.NET 毛伊岛)

在弹出窗口的SamplePopup.xaml中:

<toolkit:Popup xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
               xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
               xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
               Color="Transparent" 
               x:Class="SampleApp.SamplePopup">
    <Grid x:Name="grid1" SizeChanged="grid1_SizeChanged">
        ...
    </Grid>
</toolkit:Popup>

在 Popup 的 SamplePopup.xaml.cs 中添加如下代码:

private void grid1_SizeChanged(object sender, EventArgs e)
{
    double displayWidth = DeviceDisplay.MainDisplayInfo.Width / DeviceDisplay.MainDisplayInfo.Density;
    double displayHeight = DeviceDisplay.MainDisplayInfo.Height / DeviceDisplay.MainDisplayInfo.Density;
    this.Size = new Size(0.8 * displayWidth, grid1.height);
}

希望也能解决您的问题! 享受吧!

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.