Wpf 用户控件在主窗口中使用时被裁剪
你好,飞越者 我正在用XAML创建一个带有搜索栏的列表,当我试图在MainWindow.XAML中使用我的新UserControl时,UserControl中的按钮在设计器中被裁剪,而不是调整大小以适应,这是为什么 以下是MainWindow.xaml主体:Wpf 用户控件在主窗口中使用时被裁剪,wpf,xaml,Wpf,Xaml,你好,飞越者 我正在用XAML创建一个带有搜索栏的列表,当我试图在MainWindow.XAML中使用我的新UserControl时,UserControl中的按钮在设计器中被裁剪,而不是调整大小以适应,这是为什么 以下是MainWindow.xaml主体: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/> <ColumnDefinitio
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="8*" />
</Grid.ColumnDefinitions>
<controls:SearchBox Grid.Column="0"/>
</Grid>
这是自定义控件的主体:
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="8*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox
Grid.Row="0"
VerticalAlignment="Center"
Text="Search"
TextBlock.FontStyle="Italic"
TextBlock.TextAlignment="Left"
/>
<!-- Content="{StaticResource FilterLogo}" -->
<Button
Grid.Column="1"
Content="Filter"
VerticalAlignment="Center"
HorizontalAlignment="Stretch">
</Button>
<ListBox
Grid.Row="1"
Grid.ColumnSpan="2"
ItemsSource="{Binding DataContext}"
SelectedItem="{Binding DataContext}"
ScrollViewer.VerticalScrollBarVisibility="Visible">
</ListBox>
老实说,我真的不知道为什么我的控制权被切断了。有潜在客户吗?在列和行定义中使用星号时,请像使用百分比一样使用它们。像这样:
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".1*" /> <!-- 10% -->
<ColumnDefinition Width=".9*" /> <!-- 90% -->
</Grid.ColumnDefinitions>
这是XAML阅读器根据您的使用情况解释的:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8*" /> <!-- 800% -->
<ColumnDefinition Width="*" /> <!-- 100% -->
</Grid.ColumnDefinitions>
这将产生不期望的结果。简单回答:它不合适 主窗口中有两列。由于您尚未指定放置UserControl的列,因此它默认为第一列。但是您的
Width
定义强制该列的大小为第二列的四分之一
您的搜索框
根本不适合您分配给它的空间
如果从此行中删除星号(*):
<ColumnDefinition Width="8*" />
…它不需要裁剪就可以合身。(或者,您可以将用户控件放在第二列,或者展开主窗口,或者缩小用户控件的宽度。)哦,我不知道,哦,对了。所以,考虑到你们都告诉我的,我将控件宽度减少了一半,并修改了主窗口第一列相对于第二列的大小(30-70的比例)。它比预期的宽一点,但它会成功的。非常感谢。