W 630 x 400 Okno, jestem ładowanie tam XAML elementów:Jak uzyskać UserControl, aby rozciągnąć, aby wypełnić przydzielone miejsce?
- menu w górnej
- sterowania dynamiczny użytkownik
- stopce na dole
Problem polega na tym, że kiedy Ustawiam tło UserControl, , a tylko kolor obniża się do zawartości. Chcę, aby tło UserControl objęło oczywiście cały UserControl. Próbowałem:
- VerticalContentAlignment = "Stretch" w UserControl
- VerticalAlignment = "Stretch" w UserControl
- VerticalContentAlignment = "Stretch" w MainView
- V erticalAlignment = "Stretch" w MAINVIEW
Ale kolor nadal odmawia zejść. Nie chcę ustawiać stałej szerokości, ponieważ użytkownik może zwiększyć rozmiar aplikacji.
Jak mogę uzyskać kolor tła Moje UserControl, aby wypełnić cały obszar UserControl zamiast tylko obszaru jego zawartości?
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, to było bardzo miłe. Nie miałem zamiaru wypróbować twojej sugestii, ponieważ myślałem "ale nie chcę, aby moja kontrola treści była ostatnim dzieckiem, ale drugim dzieckiem". I tak spróbowałem i to działa. Powodem jest to, że "ostatnie dziecko" w DockPanel nie jest dzieckiem "najdalej w dół", ale dziecko "ostatnio wymienione w XAML". Bardzo dobrze wiedzieć. –
Kiedy to zrobię, formant wypełnia tak, ale nakłada się na mój pasek stanu –