WPF .NET4.0 内容控件从屏幕中增长

本文关键字:屏幕 控件 NET4 WPF | 更新日期: 2023-09-27 17:56:30

我遇到了一个让我沮丧的问题。显示的内容从屏幕中增长出来。即不应用窗口大小。

以下是我尝试过的:

<Window ...
        d:DesignHeight="768" d:DesignWidth="1024"
        MinHeight="768" MinWidth="1024"  
        mc:Ignorable="d" SizeToContent="WidthAndHeight"
        WindowStartupLocation="CenterScreen"  WindowState="Maximized"
        Closed="WindowClosed" Loaded="Window_Loaded">

我尝试在主机和主窗口上设置MaxWidthMaxHeight,但仍然没有运气。

在窗口后面的代码中:

protected override void OnSourceInitialized(EventArgs e)
    {
        base.OnSourceInitialized(e);
        MinWidth = ActualWidth;
        MinHeight = ActualHeight;
        ClearValue(SizeToContentProperty);
    }

主机控件上的代码:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="40"/>
        <RowDefinition Height= "*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <ContentControl x:Name="content"
                    Grid.Row="1" Grid.Column="0" Content="{Binding ContentToDisplay}"
                    VerticalAlignment="Stretch"  VerticalContentAlignment="Stretch"
                    HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"/>
</Grid>

我试着把ContentControl插在ViewBox里,DockPanel,仍然没有运气。一旦我将内容设置为"大"(在ScrollViewer内),它就不会打扰包含它。我试图实现的是简单地将内容包含在屏幕内的内容控件中。

谢谢!

WPF .NET4.0 内容控件从屏幕中增长

也许作为一种解决方法,您可以收听SizeChanged并在点击屏幕尺寸时禁用自动调整大小?

您的窗口标记为 SizeToContent="WidthAndHeight",因此内容的大小将调整为它所包含的内容。 这没有发布,所以很难说是什么原因造成的。 例如,是否使用数据绑定来设置任何大小?

此外,您没有将窗口的最大宽度和高度设置为屏幕大小。 这至少可以防止它变得比屏幕大。

也许最好的办法是将窗口设置为特定大小,然后在代码隐藏的 Loaded 事件中,将窗口设置为所需的大小,或者在加载后将其设置为最大化。