【发布时间】:2015-07-30 09:32:45
【问题描述】:
我正在尝试使用“*”来分配 DataGrid 中每个 DataGridTemplateColumn 的宽度。
<DataGrid Name="Mapping" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="1"
ItemsSource="{Binding Information.Signals}"
SelectionMode="Single" AutoGenerateColumns="False" VirtualizingPanel.IsVirtualizing="True" FontSize="10"
RowDetailsVisibilityMode="VisibleWhenSelected" BorderThickness="1"
EnableColumnVirtualization="True" EnableRowVirtualization="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.IsDeferredScrollingEnabled="True"
ScrollViewer.CanContentScroll ="True" VirtualizingPanel.VirtualizationMode="Recycling"
CanUserAddRows="True" CanUserResizeRows="False" CanUserDeleteRows="True" SelectionUnit="FullRow"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Name"
CellTemplate="{StaticResource NameTemplate}"
CanUserSort="True" CanUserReorder="False" CanUserResize="True" SortMemberPath="Name"
Width="6*"
>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Type"
CellTemplate="{StaticResource PropertyTemplate}"
CanUserSort="True" CanUserReorder="False" CanUserResize="True" SortMemberPath="SelectedProperty"
Width="4*">
</DataGridTemplateColumn>
ColumnTemplates 和这个类似
<DataTemplate x:Key="NameTemplate">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<TextBlock Text="{Binding Path=Name}" MinWidth="280" FontSize="11" FontFamily="Calibri"
HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
当窗口最大化时,缩放工作正常。发生的情况是,当它没有最大化时,标题几乎是 3 个显示器宽,比如 3000 像素。
如果我将宽度设置为固定值,一切都很好。 谁能建议我如何解决这个问题?我想使用“*”来使用相对缩放
更新: WPF 项目正在使用 MahApps 控件,所以我不确定是不是这个原因。
【问题讨论】:
-
你设置了窗口的高度和宽度吗?如果窗口没有最大化,它会跟随高度和宽度值。