Есть ComboBox и несколько TextBox:
<ComboBox SelectedIndex="0" Padding="2" FontSize="18">
<ComboBoxItem>1</ComboBoxItem>
<ComboBoxItem>2</ComboBoxItem>
</ComboBox>
//Первый Grid
<Grid Grid.Column="0" Grid.Row="1" Margin="47 0 47 50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox Grid.Column="0" Grid.Row="0" Padding="3" Margin="2" FontSize="15" Name="Cell1" TextAlignment="Center"/>
<TextBox Grid.Column="0" Grid.Row="1" Padding="3" Margin="2" FontSize="15" Name="Cell2" TextAlignment="Center"/>
<TextBox Grid.Column="1" Grid.Row="0" Padding="3" Margin="2" FontSize="15" Name="Cell3" TextAlignment="Center"/>
<TextBox Grid.Column="1" Grid.Row="1" Padding="3" Margin="2" FontSize="15" Name="Cell3" TextAlignment="Center"/>
</Grid>
//Второй Grid
<Grid Grid.Column="0" Grid.Row="1" Margin="47 0 47 50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!--First Colomn-->
<TextBox Grid.Column="0" Grid.Row="0" Padding="3" Margin="2" FontSize="15" Name="Cell1" TextAlignment="Center"/>
<TextBox Grid.Column="0" Grid.Row="1" Padding="3" Margin="2" FontSize="15" Name="Cell2" TextAlignment="Center"/>
<TextBox Grid.Column="0" Grid.Row="2" Padding="3" Margin="2" FontSize="15" Name="Cell3" TextAlignment="Center"/>
<!--Second Colomn-->
<TextBox Grid.Column="1" Grid.Row="0" Padding="3" Margin="2" FontSize="15" Name="Cell4" TextAlignment="Center"/>
<TextBox Grid.Column="1" Grid.Row="1" Padding="3" Margin="2" FontSize="15" Name="Cell5" TextAlignment="Center"/>
<TextBox Grid.Column="1" Grid.Row="2" Padding="3" Margin="2" FontSize="15" Name="Cell6" TextAlignment="Center"/>
</Grid>
Вопросы:
Изменения шрифта в зависимости от размера окна. Изначально установлено, что шрифт 15, нужно сделать так, чтобы при MaxWidth и MaxHeight он был 20, а при MinWidth и MinHeigh был 10 и менялся в этом диапазоне в зависимости от размера окна
Реализовать заполнение TextBox через пробел. При запуске окна, после InitializeComponent(); есть Cell1.Focus();. Нужно, чтобы при нажатии на кнопку пробел курсор перемещался из одного TextBox в другой (Cell1.Focus(); -> Cell2.Focus(); -> Cell3.Focus();)
Зависимость ComboBox от количества TextBox. Есть Первый Grid и Второй Grid. Нужно, чтобы при выборе ComboBoxItem == 1, на странице был первый Grid, а при выборе ComboBoxItem == 2, на странице был второй Grid. Всё это динамически меняется при выборе ComboBoxItem
Давайте покажу, как менять шрифт глобально.
Вам нужно не выставлять шрифт конкретному элементу, а определить его на уровне окна. Для привязки нам понадобится пара простых конвертеров:
class RatioConverter : IValueConverter
{
public double Min { get; set; }
public double Max { get; set; }
public double MinValue { get; set; }
public double MaxValue { get; set; }
public object Convert(object value, Type targetType, object p, CultureInfo ci)
{
double v = (double)value;
var ratio = (v - Min) / (Max - Min);
return MinValue + (MaxValue - MinValue) * ratio;
}
public object ConvertBack(object value, Type targetType, object p, CultureInfo ci) =>
throw new NotSupportedException();
}
class MinConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object p, CultureInfo ci) =>
values.Cast<double>().Min();
public object[] ConvertBack(object value, Type[] targetTypes, object p, CultureInfo ci)=>
throw new NotSupportedException();
}
Теперь сам XAML.
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Test"
Title="Тест" Height="200" Width="300">
<Window.Resources>
<sys:Double x:Key="MinWidth">200</sys:Double>
<sys:Double x:Key="MaxWidth">400</sys:Double>
<sys:Double x:Key="MinHeight">150</sys:Double>
<sys:Double x:Key="MaxHeight">300</sys:Double>
<sys:Double x:Key="MinFontSize">15</sys:Double>
<sys:Double x:Key="MaxFontSize">40</sys:Double>
<local:RatioConverter
x:Key="WidthConverter"
MinValue="{StaticResource MinFontSize}" MaxValue="{StaticResource MaxFontSize}"
Min="{StaticResource MinWidth}" Max="{StaticResource MaxWidth}"/>
<local:RatioConverter
x:Key="HeightConverter"
MinValue="{StaticResource MinFontSize}" MaxValue="{StaticResource MaxFontSize}"
Min="{StaticResource MinHeight}" Max="{StaticResource MaxHeight}"/>
<local:MinConverter x:Key="MinConverter"/>
</Window.Resources>
<TextBlock.FontSize>
<MultiBinding Converter="{StaticResource MinConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}"
Converter="{StaticResource WidthConverter}"/>
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}"
Converter="{StaticResource HeightConverter}"/>
</MultiBinding>
</TextBlock.FontSize>
<Window.MinWidth><StaticResource ResourceKey="MinWidth"/></Window.MinWidth>
<Window.MaxWidth><StaticResource ResourceKey="MaxWidth"/></Window.MaxWidth>
<Window.MinHeight><StaticResource ResourceKey="MinHeight"/></Window.MinHeight>
<Window.MaxHeight><StaticResource ResourceKey="MaxHeight"/></Window.MaxHeight>
<Grid>
<TextBlock Text="Здравствуй, мир!"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Window>
Получается:
Виртуальный выделенный сервер (VDS) становится отличным выбором
Ломаю голову не могу понять в чем дело , почему структура выдает везде Null а остальное сохраняется !
Почему-то происходит какой-то сбой, программа просто закрывается без ошибки, когда пытаюсь получить OSFullName, но при получении OSVersion все отлично,...