Gab*_*abe 3 c# silverlight xaml
我正在尝试MinWidth为我的列设置一个。
MinWidth适用于Column0 但不适用于Column2。拆分器只是不断拖动,我可以使 Column 小于声明MinWidth
的MinWidth似乎只有在Column Width具有数值而不是 Auto时才生效.... 有没有办法得到与它一起工作Auto还是只是*??
有任何想法吗?
<!-- Content Area -->
<Grid x:Name="ContentGrid"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="32" Width="260"/>
<ColumnDefinition Width="8" />
<ColumnDefinition MinWidth="100" Width="*" />
</Grid.ColumnDefinitions>
<!-- Navigation -->
<ItemsControl Name="NavigationRegion"
Regions:RegionManager.RegionName="NavigationRegion"
Grid.Column="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<!-- Splitter -->
<controls:GridSplitter x:Name="GridSplitter"
Grid.Column="1"
VerticalAlignment="Stretch"
HorizontalAlignment="Center"
Background="{StaticResource SplitterBackgroundColor}"
Width="8"
UseLayoutRounding="True"
BorderThickness="1"
BorderBrush="Black"
Height="Auto"/>
<!-- Form -->
<ItemsControl x:Name="MainRegion"
Grid.Column="2"
Regions:RegionManager.RegionName="MainRegion">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
Run Code Online (Sandbox Code Playgroud)
我解决这个问题的方法是将 a 设置MaxWidth为Column0。当SizeChanged发生火灾时,我根据当前获得0的MaxWidth值ColumnActualWidth
所以我也MinWidth从Column2 中删除了我的。以下是修改:
<!-- Content Area -->
<Grid x:Name="ContentGrid"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="32" Width="260"/>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
...
Run Code Online (Sandbox Code Playgroud)
然后是事件设置 MaxWidth
this.SizeChanged += (s, e) =>
{
double maxWidth = this.ActualWidth / 2.0;
this.ContentGrid.ColumnDefinitions[0].MaxWidth = maxWidth;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3341 次 |
| 最近记录: |