【发布时间】:2015-11-29 11:39:43
【问题描述】:
对不起,问题的标题很长,但我不知道如何缩短它。
我有 SettingsView 带有内容控制的窗口:
<Window x:Class="IsoMan.UI.Settings.Views.SettingsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SettingsView" WindowStartupLocation="CenterOwner"
SizeToContent="WidthAndHeight">
<ContentControl Name="ContentControl"/>
</Window>
在代码隐藏中,我正在设置 ContentControl 的内容。 这里我简化了很多,通常它是通过绑定动态设置的,所以我现在从来没有现在将什么类型的 UserControl 设置为内容。 (但始终是 UserControl)
public partial class SettingsView : Window
{
public SettingsView()
{
InitializeComponent();
ContentControl.Content = new UserSettingsView();
}
}
这是我的 UserSettingsView.xaml,它是 SettingsView 的子控件:
<UserControl x:Class="IsoMan.UI.Settings.UserSettings.Views.UserSettingsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
MinHeight="400" MinWidth="700">
<DataGrid ItemsSource="{Binding UsersList}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" >
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding FirstName}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</UserControl>
这是我的问题。
我将 Window SizeToContent 设置为 WidthAndHeight,因为我希望它的大小可以调整为子控件大小(在本例中为 UserSettingsView)。
UserSettingsView 设置了 MinWidth/MinHeight,因为我希望用户无法将其缩小(按钮/网格演示)。该控件具有一列宽度为“*”的网格。我希望它占用所有可用空间。
现在会发生什么:
显示 SettingsView 后,它的宽度是我屏幕的最大宽度。我认为这是因为 UserSettingsView 中网格的列宽设置为“*”。
我想要达到的目标:
显示 SettingsView 后,它的宽度应该是 UserSettingsView 的 MinWidth。此外,当用户尝试调整 SettingsView 窗口大小时,子控件 UserSettingsView 也应调整大小。
【问题讨论】:
-
我只是好奇,DataGrid 是否只有一列?
-
不,它有很多列。其中一些具有固定宽度,另一些宽度设置为“*”。