WPF扩展器和窗口大小后崩溃?
我正在处理一个关于主窗口调整大小的问题,在扩展器折叠后,通过拖放操作将窗口手动调整为更大的大小。 扩展器已折叠,但主窗口未调整大小以适合内部组件大小。
组件被放置到自动调整大小的网格列,主窗口被设置为WidhtAndHeight大小的内容。
主窗口属性集:
SizeToContent="WidthAndHeight"
我通过后面的代码和事件处理程序完成了解决方案(关于崩溃和展开事件)。 但我认为WPF有更好的方法...
扩展器XAML实现:
<Expander Name="expander" Grid.Column="2" Grid.Row="0" Grid.RowSpan="5" ExpandDirection="Right" ToolTip="Expand window for history details" Expanded="Expander_Expanded" Collapsed="Expander_Collapsed" SizeChanged="expander_SizeChanged" >
<Expander.Header>
<TextBlock RenderTransformOrigin="0.3,1.5">
<TextBlock.RenderTransform>
<TransformGroup>
<RotateTransform Angle="90" />
</TransformGroup>
</TextBlock.RenderTransform>
Show history
</TextBlock>
</Expander.Header>
<StackPanel>
<ListView ItemsSource="{Binding Path=HistoryList}" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Auto" MaxHeight="350" >
<ListView.View>
<GridView>
<GridViewColumn Header="Operation" DisplayMemberBinding="{Binding Operation}" />
<GridViewColumn Header="Result" DisplayMemberBinding="{Binding Result}" />
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</Expander>
有没有人有线索如何智能解决这种情况?
感谢您的建议。
当您手动调整窗口大小时,SizeToContent属性似乎会失去其价值,要解决此问题,只需订阅Window的OnSizeChanged事件,然后重置SizeToContent属性:
XAML:
<Window SizeToContent="WidthAndHeight" SizeChanged="MainWindow_OnSizeChanged">
代码隐藏:
private void MainWindow_OnSizeChanged(object sender, SizeChangedEventArgs e)
{
SizeToContent = SizeToContent.WidthAndHeight;
}
链接地址: http://www.djcxy.com/p/43641.html