我遇到了一个令我感到沮丧的问题。显示的内容在屏幕外增长。即没有应用窗口大小。
以下是我尝试的内容:
<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
但仍然没有运气。
并在Window后面的代码中:
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
之内),它就不会包含它。我想要实现的是简单地在屏幕内容纳内容控件中的内容。
谢谢!
答案 0 :(得分:3)
也许作为一种解决方法,你可以听到SizeChanged并在点击屏幕尺寸时禁用自动调整大小?
答案 1 :(得分:2)
您有一个标记为SizeToContent =“WidthAndHeight”的窗口,因此内容将按其包含的大小调整。那个没有发布,所以很难说是什么导致了它。您是否使用DataBinding设置任何大小,例如?
此外,您没有将窗口的最大宽度和高度设置为屏幕大小。这至少可以防止它变得比屏幕大。
最好的办法可能是将窗口设置为特定大小,然后在代码隐藏中,在Loaded事件中,将窗口设置为所需大小,或者将其设置为加载后最大化。