Trong một cửa sổ 630 x 400, tôi tải các yếu tố có XAML:Làm thế nào để có được một UserControl để kéo dài để lấp đầy không gian alloted?
- menu ở trên
- điều khiển người dùng năng động
- chân ở dưới cùng
Vấn đề là khi Tôi thiết lập nền của UserControl, màu chỉ đi xuống xa như nội dung. Tôi muốn nền của UserControl để trang trải toàn bộ UserControl tất nhiên. Tôi đã thử:
- VerticalContentAlignment = "Stretch" trong UserControl
- VerticalAlignment = "Stretch" trong UserControl
- VerticalContentAlignment = "Stretch" trong MainView
- V erticalAlignment = "Stretch" trong MainView
Nhưng màu sắc vẫn từ chối để đi xuống. Tôi không muốn đặt chiều rộng cố định vì người dùng có thể tăng kích thước của ứng dụng.
Làm cách nào để có được màu nền của UserControl để lấp đầy toàn bộ diện tích của UserControl thay vì chỉ có diện tích nội dung của nó?
PageItemOptionsView.xaml:
<UserControl x:Class="TestMenu234.Views.PageItemOptionsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
VerticalContentAlignment="Stretch"
VerticalAlignment="Stretch"
Background="#ddd">
<StackPanel Margin="10">
<TextBlock Text="This is the options area."/>
<Button Content="Click to go to the Manage Customers page."
Width="200"/>
</StackPanel>
</UserControl>
MainView.xaml:
<Window x:Class="TestMenu234.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:TestMenu234.Commands"
xmlns:vm="clr-namespace:TestMenu234.ViewModels"
xmlns:v="clr-namespace:TestMenu234.Views"
Title="Main Window" Height="400" Width="630" MinWidth="630">
...
<DockPanel LastChildFill="False">
<Menu DockPanel.Dock="Top">
<MenuItem
Header="Pages" ItemsSource="{Binding AllPageItemViewModels}"
ItemTemplate="{StaticResource CodeGenerationMenuTemplate}"/>
</Menu>
<ContentControl
DockPanel.Dock="Top"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch"
Content="{Binding CurrentPageItemViewModel}"/>
<Border DockPanel.Dock="Bottom" Padding="5 5 5 0" Background="#eee">
<Grid Background="#eee">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="300"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Slider
Grid.Column="0"
HorizontalAlignment="Left"
Value="{Binding CurrentPageItemViewModelIndex}"
Width="300"
Minimum="0"
Maximum="{Binding HighestPageItemIndex}"/>
<TextBlock Grid.Column="1"
HorizontalAlignment="Center" FontWeight="Bold"
Text="{Binding CurrentPageItemViewModelTitle}"/>
<DockPanel Grid.Column="2" Margin="0 0 0 5" LastChildFill="False">
<Button
Margin="3 0 0 0"
DockPanel.Dock="Right"
HorizontalAlignment="Right"
Content="Next" Command="{Binding NextPageCommand}"/>
<Button
DockPanel.Dock="Right"
Content="Prev" Command="{Binding PreviousPageCommand}"/>
</DockPanel>
</Grid>
</Border>
</DockPanel>
</Window>
Ok, đó là rất tốt đẹp. Tôi thậm chí còn không thử đề nghị của bạn bởi vì tôi nghĩ "nhưng tôi không muốn kiểm soát nội dung của tôi là đứa trẻ cuối cùng, nhưng đứa con thứ hai đến cuối cùng". Tôi đã thử nó anyway và nó hoạt động. Lý do là "đứa con cuối cùng" của một DockPanel không phải là đứa trẻ "xa nhất về phía dưới" nhưng đứa trẻ "cuối cùng được liệt kê trong XAML". Rất tốt để biết. –
Khi tôi thực hiện điều khiển, hãy điền vào có nhưng chồng chéo thanh trạng thái của tôi –