Доброго времени суток. Разрабатывал приложение на мониторе 4:3 и сейчас купил 16:9. На 4:3 оно почти во весь экран а на 16:9 ничего не видно почти. Как бороться с этим?
Хотелось бы реализовать режим во все окно. Но опять же элементы остаются на местах растягивается только окно. Как увеличить их и оставить в том же месте?
Когда очень много вот кусок, может если его доделать то и все остальное по принципу сделаю
<StackPanel Margin="0,90,0,0" Height="360" VerticalAlignment="Top" >
<TabControl x:Name="MainTab" Height="393" Margin="0,-34,0,0" Background="{x:Null}" BorderBrush="{x:Null}" >
<TabItem Header="Anastasia" Style="{DynamicResource TabButtons}" Margin="16,2,-16,-2" >
<Grid HorizontalAlignment="Left" Width="311">
<TextBox x:Name="UserMessage" Margin="0,0,0,10" Background="{x:Null}" HorizontalAlignment="Right" VerticalAlignment="Bottom" Width="300" Foreground="White" KeyDown="UserMessage_KeyDown" PreviewKeyDown="UserMessage_PreviewKeyDown" >
<TextBox.BorderBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF00E2C3" Offset="0"/>
<GradientStop Color="#FF5100C7" Offset="1"/>
</LinearGradientBrush>
</TextBox.BorderBrush>
</TextBox>
<ListView x:Name="MainChat" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" Background="{x:Null}"
Margin="5,191,0,39" IsEnabled="False" Foreground="White" BorderBrush="{x:Null}" ItemTemplateSelector="{StaticResource TS}"
ItemsSource="{Binding TempSelect}" Style="{DynamicResource ListViewStyle}" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Width="304" >
</ListView>
<Label x:Name="UserCommand" Height="37" Margin="0,-5.5,0.333,294.5" Foreground="White" FontSize="16" HorizontalAlignment="Right" Grid.Column="1" d:LayoutOverrides="TopMargin, BottomMargin" />
<Button x:Name="SendButt" Content="{x:Static p:Resources.SendMessageButton}" Height="22.162" Margin="232,333,0,9" Style="{DynamicResource MainButtons}" Click="SendButt_Click" HorizontalAlignment="Left" Width="75"/>
<Label x:Name="UserCommandShow" Margin="0,157,4,139" Foreground="White" FontSize="16" FontFamily="Adobe Caslon Pro Bold" HorizontalAlignment="Right" />
</Grid>
</TabItem>
Всё плохо. Вы не пользуетесь layout management'ом, а располагаете элементы при помощи вручную жёстко заданных маргинов. Неудивительно, что ваш UI не скалируется — а что ж вы хотели? Ваш код делает ровно то, что вы ему сказали.
Для вашего случая должно быть что-то такое:
<!-- stackpanel вовсе не нужен, он не даёт растянуться -->
<!-- маргин убрать, фиксированную высоту убрать -->
<!-- вам точно нужен null-background, или подойдёт background по умолчанию? -->
<TabControl x:Name="MainTab" Background="{x:Null}" BorderBrush="{x:Null}" Margin="5">
<!-- это что такое за маргин? сдвиг вправо? зачем? убрать! -->
<TabItem Header="Anastasia">
<!-- а зачем alignment не по всей ширине? -->
<Grid>
<!-- так, форматируем при помощи строк в Grid -->
<Grid.RowDefinitions>
<!-- Этот кусок занимает как можно больше места -->
<RowDefinition Height="*"/>
<!-- Этот занимает сколько ему нужно, не больше -->
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- утащили вверх и поместили в первую строку -->
<!-- ну вы поняли насчёт маргина и фиксированной ширины -->
<!-- а зачем RenderTransformOrigin o_O -->
<ListView x:Name="MainChat" Grid.Row="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
Background="{x:Null}" IsEnabled="False"
Foreground="White" BorderBrush="{x:Null}"
ItemsSource="{Binding TempSelect}"/>
<!-- а сообщение и кнопку упакуем в свой контейнер -->
<DockPanel LastChildFill="True" Grid.Row="1">
<Button x:Name="SendButt" Content="Send Message" DockPanel.Dock="Left"/>
<!-- опять фиксированная ширина, убрать, лэйаутом занимается контейнер -->
<TextBox x:Name="UserMessage"
Background="{x:Null}" Foreground="White" Padding="2">
<TextBox.BorderBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF00E2C3" Offset="0"/>
<GradientStop Color="#FF5100C7" Offset="1"/>
</LinearGradientBrush>
</TextBox.BorderBrush>
</TextBox>
</DockPanel>
<!-- не знаю, куда вы хотели её поместить, разбирайтесь сами -->
<Label x:Name="UserCommand" Foreground="White" FontSize="16"
HorizontalAlignment="Right" />
<!-- и с этой тоже -->
<Label x:Name="UserCommandShow" Foreground="White" FontSize="16"
FontFamily="Adobe Caslon Pro Bold" HorizontalAlignment="Right" />
</Grid>
</TabItem>
</TabControl>
Получается что-то такое:
и оно правильно меняет размеры при изменении размеров окна. Стилизуйте и наводите красоту дальше сами.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть некоторое WCF приложениеВ контракте на хосте WCF есть такой метод:
Требуется разбить файл (как правило архив) на определенное количество частейНашел готовый рабочий вариант на c#, но не смог его адаптировать...