У меня проблемы с установкой стиля для элемента управления groupbox.
У меня есть код XAML, стиль которого определен в верхней части кода.я ищу способ добавить стиль, уже определенный к элементу, который я создаю динамически.
Вот мой раздел стилей:
<Window.Resources>
<Style x:Key="GroupBoxStyle1" TargetType="{x:Type GroupBox}">
<Setter Property="BorderBrush" Value="Blue"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="6"/>
</Grid.RowDefinitions>
<Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="3" Grid.Column="0" CornerRadius="8" Grid.Row="1" Grid.RowSpan="3"/>
<ContentPresenter Grid.Column="1" Margin="{TemplateBinding Padding}" Grid.Row="2" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<ContentPresenter ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Grid.Row="1" Grid.RowSpan="2" Grid.Column="1"
HorizontalAlignment="Center" VerticalAlignment="Center"
RenderTransformOrigin="0.5,0.5">
<ContentPresenter.RenderTransform>
<RotateTransform Angle="45"/>
</ContentPresenter.RenderTransform>
</ContentPresenter>
<Border BorderBrush="Black" BorderThickness="{TemplateBinding BorderThickness}" Grid.ColumnSpan="3" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
<Border BorderBrush="Red" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
</Border>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
Вот что у меня есть для создания моего элемента:
$NewBox = New-Object System.Windows.Controls.GroupBox
$NewBox.Content = "L " + $counter
$NewBox.Header = "t"
$NewBox.Margin = "0"
$NewBox.Style = "GroupBoxStyle1"
$NewBox.Name = "FirstBox"
[System.Windows.Controls.Grid]::SetRow($NewBox,1)
[System.Windows.Controls.Grid]::SetColumn($NewBox,1)
Я использовал свойство стиля, так как это было то, что яможно найти с помощью команды «Get-Member».У меня такое ощущение, что я не использую правильный синтаксис для вызова целевого типа.Потому что, хотя я могу заставить групповое окно появляться, я постоянно получаю следующую ошибку:
Параметр исключения «Стиль»: «Невозможно преобразовать значение« GroupBoxStyle1 типа «System.String» в тип «System.Windows».Стиль ""