我使用Mahapps的MetroWindow类来显示某种对话窗口。 我的想法是创建自动调整大小的窗口,以适应它的内容大小
<controls:MetroWindow
...
DataContext="{Binding DialogVM, Source={StaticResource ViewModelLocator}}"
Title="{Binding WindowHeader}"
WindowTitleBrush="{StaticResource MainStyleTitleBrush}"
Background="{StaticResource MainStyleBackgroundBrush}"
wpfExtensions:SizeObserver.Observe="True"
wpfExtensions:SizeObserver.ObservedWidth="{Binding xHeight, Mode=OneWayToSource}"
wpfExtensions:SizeObserver.ObservedHeight="{Binding xWidth, Mode=OneWay}"
MaxWidth="1110" MaxHeight="1080"
MinWidth="450" MinHeight="600"
ShowMinButton="False"
ShowMaxRestoreButton="False"
BorderThickness="1"
BorderBrush="{StaticResource MainStyleBorderBrush}"
SizeToContent="Width"
WindowStartupLocation="CenterScreen">
<Grid>
<ContentPresenter Content="{Binding VM}"/>
</Grid>
</controls:MetroWindo>
但我有两个问题 第一个:我的窗口受用户操作影响(鼠标双击标题,将窗口拖动到左侧或右侧屏幕边缘,依此类推),我希望它被冻结,但可以调整大小。 第二个:当我再次重新显示同一个窗口时(不重新创建它,但是新内容可以有新的可见大小),它显示在它的最后位置。
如果没有代码隐藏的WindowSizeChanged事件捕获,我怎样才能解决这个问题?
答案 0 :(得分:1)
把ResizeMode =“NoResize”和SizeToContent =“WidthAndHeight”