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">
我尝试在主机和主窗口上设置MaxWidth
和MaxHeight
,但仍然没有运气。
在窗口后面的代码中:
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
内),它就不会打扰包含它。我试图实现的是简单地将内容包含在屏幕内的内容控件中。
谢谢!
也许作为一种解决方法,您可以收听SizeChanged并在点击屏幕尺寸时禁用自动调整大小?
您的窗口标记为 SizeToContent="WidthAndHeight",因此内容的大小将调整为它所包含的内容。 这没有发布,所以很难说是什么原因造成的。 例如,是否使用数据绑定来设置任何大小?
此外,您没有将窗口的最大宽度和高度设置为屏幕大小。 这至少可以防止它变得比屏幕大。
也许最好的办法是将窗口设置为特定大小,然后在代码隐藏的 Loaded 事件中,将窗口设置为所需的大小,或者在加载后将其设置为最大化。