#c# #windows #xaml #uwp
#c# #Windows #xaml #uwp
Вопрос:
В моем MainPage.xaml у меня есть сетка.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<views:SidePage Grid.Column="0" />
<views:ContentPage Grid.Column="1" />
</Grid>
Количество пробелов, которые занимает каждая страница, указано правильно, но цвет фона страницы содержимого не соответствует занимаемой ширине.
Это ContentPage.xaml:
<Page
x:Class="MediaPlayer.Views.ContentPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel>
<TextBlock Text="Testing"></TextBlock>
</StackPanel>
</Page>
И здесь я устанавливаю фон
public ContentPage()
{
InitializeComponent();
Background = new SolidColorBrush(StaticColors.ContentBackgroundColor);
}
public static readonly Color ContentBackgroundColor = Color.FromArgb(150, 0, 0, 60);
Как вы можете видеть, «Тестирование» находится на белой части.
Комментарии:
1. Оберните
StackPanel
сGrid
помощью. Похоже, он не учитывает ширину родительского элемента.2. Обертывание StackPanel сеткой в ContentPage ее не меняет. Перенос сетки в MainPage с помощью StackPanel также не работает. Цвет фона не соответствует ширине.
Ответ №1:
Исправлено
Я исправил это, заключив страницу содержимого в отдельную сетку.
Это новая главная страница.xaml
<Page
x:Class="MediaPlayer.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="using:MediaPlayer.Views"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<views:SidePage Grid.Column="0" />
<Grid Grid.Column="1">
<views:ContentPage />
</Grid>
</Grid>
</Page>