我有这个:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="50*" />
</Grid.ColumnDefinitions>
<GridSplitter Background="{x:Static SystemColors.ControlBrush}"
Grid.Column="1"
Margin="0,0,0,0"
Name="splitter"
HorizontalAlignment="Stretch" />
Run Code Online (Sandbox Code Playgroud)
我正在尝试保存并恢复分离器位置.我正在使用grid.ColumnDefinitions[0].Width,它以像素为单位返回列的宽度.
当我恢复位置时,如何恢复并保持50*设置,以便在调整窗口大小时,列可以正确调整大小?
Cap*_*ain 10
的宽度属性不是一个简单的double,这是一个System.Windows.GridLength其中包含对象值属性(double)和GridUnitType属性(GridUnitType),它是一个enum.因此,要将列的宽度设置为50*:
grid.ColumnDefinitions[0].Width = new GridLength(50, GridUnitType.Star)
Run Code Online (Sandbox Code Playgroud)
要保存和恢复,您需要做的就是保存GridUnitType每个列的值和值.
希望能帮助到你.