Изучение основных понятий WPF
до перехода на UWP
. Следующий XAML в моем проекте WPF показывает окна, как показано ниже.
Я пытаюсь отобразить Rectangle
и Button
справа от StackPanel
и мне нужен элемент управления Rectangle
(не кнопка) для автоматического заполнения StackPanel.
Я попробовал HorizontalAlignment="Stretch"
без атрибута Width
, но без атрибута Width весь прямоугольник сжимается до 0 ширины. Не нужно жестко кодировать значение ширины (если возможно), чтобы окно приложения настраивалось в зависимости от устройства, на котором оно включено (разрешение экрана). Но если этот сценарий все еще возможен с жестко заданным значением ширины, пожалуйста, дайте мне знать об этом подходе.
Окно
XAML
Замечание : Я не думаю, что ListBox
играет какую-либо роль (связана с этим постом). Только элементы управления внутри ListItemsControl
над ListBox
, вероятно, нуждаются в правильной настройке. но я могу ошибаться.
<Window x:Class="WPFProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="376"
Width="337">
<Grid>
<ItemsControl>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Height="10">
<Rectangle x:Name="myRectangle" Fill="#FFF4F4F5" HorizontalAlignment="Right" Height="9" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.533,0.6"/>
<Button Content="" HorizontalAlignment="Right" Height="10" VerticalAlignment="Top" FontSize="5" FontWeight="Bold"/>
</StackPanel>
</ItemsControl>
<ListBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,11,0,81" ScrollViewer.HorizontalScrollBarVisibility="Disabled" x:Name="myList" SelectionChanged="myList_ContextMenuClosing">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Rectangle Fill="{Binding FirstName}" ToolTip="{Binding FullName}" Width="20" Height="20" Stroke="#FF211E1E" OpacityMask="Black" StrokeThickness="1" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button x:Name="btnTest" Content="Test" HorizontalAlignment="Left" Margin="250,298,0,0" VerticalAlignment="Top" Width="75" Click="BtnTest_Click"/>
</Grid>
</Window>