Я пытаюсь создать макет пользовательского интерфейса в WPF, который может масштабироваться в зависимости от размера окна.Идея состоит в том, чтобы иметь несколько элементов управления слева, несколько элементов управления справа и посередине, иметь строку текста.Это нормально, если строка текста обрезана справа.Главное, что соотношение сторон всех элементов управления сохраняется.
Эта часть работает нормально.Проблема в том, что центральная линия текста имеет минимальную высоту;ниже этой высоты он начнет отсекаться вертикально.Я хочу, чтобы текст продолжал сокращаться, если я сделаю окно очень тонким.Даже ручная установка FontSize
на TextBlock
не работает.
Обратите внимание, что элементы управления слева и справа не имеют минимальной ширины;они могут сокращаться до бесконечности.
Мой XAML здесь.Я использую .NET 4.0.
<Window x:Class="TestWpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="75" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Viewbox Grid.Column="0" Stretch="UniformToFill" Margin="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center">A</Button>
<Button Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center">B</Button>
<Button Grid.Column="2" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center">C</Button>
<Button Grid.Column="3" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center">D</Button>
</Grid>
</Viewbox>
<Viewbox VerticalAlignment="Top" HorizontalAlignment="Left" Grid.Column="1" Stretch="UniformToFill" Margin="2">
<TextBlock>Here is a bunch of text that may prove to be interesting.</TextBlock>
</Viewbox>
<Viewbox Grid.Column="2" Stretch="UniformToFill" Margin="2">
<Button HorizontalAlignment="Center">X</Button>
</Viewbox>
</Grid>
</Window>