Перед тем, как опубликовать мой код, дайте мне опубликовать изображение, где вы можете легко заметить, что Acctually происходит:Как настроить текстовое поле и поле со списком границы WPF
И как вы можете видеть на текстовые поля, толщина границы не является одинаковым со всех сторон. В случае с текстовым полем, например, гораздо ярче справа. Также на комбобоксе есть что-то вроде тени сверху и на левой стороне ..
Как я мог исправить это, я просто хочу 1px синей рамки вокруг моего управления ..
А вот мой код:
<ComboBox Name="cmbComboBoxOne" Height="40" BorderThickness="1" VerticalAlignment="Center" BorderBrush="#0091EA" ></ComboBox>
<TextBox Name="txtTextBoxOne" TextWrapping="Wrap" Text="TextBox" BorderThickness="1" BorderBrush="#0091EA" />
EDIT:
Я применил Edit Template Copy, я установить толщину границы 1 и цвета до фиолетового, и это выглядит следующим образом:
Так что, ребята, опять же, это не хорошо с толщиной: 1 рх, например, с толщиной: 2px его удивительным, все стороны равны, но 2рх слишком много для меня ..
Вот мой код после того, как я редактировал шаблон:
<TextBox x:Name="txtName" Grid.Column="1" SnapsToDevicePixels="True" UseLayoutRounding="True" Grid.Row="0" Margin="5,0,10,0" TextWrapping="Wrap" Text="TextBox" Height="40" VerticalAlignment="Center" Style="{DynamicResource TextBoxStyle1}" >
<TextBox.Resources>
<Style x:Key="TextBoxStyle1" TargetType="{x:Type TextBox}">
<Setter Property="BorderBrush" Value="Purple"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="AllowDrop" Value="true"/>
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" BorderStyle="Sunken" Background="{TemplateBinding Background}">
<ScrollViewer x:Name="PART_ContentHost"/>
</Microsoft_Windows_Themes:ClassicBorderDecorator>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TextBox.Resources>
</TextBox>
, как вы можете видеть, ребята
<Setter Property="BorderBrush" Value="Purple"/>
<Setter Property="BorderThickness" Value="1"/>
установлены, бу т результат как-то же:/
WPF-макет - это плавающая точка, а не целое число. Играйте с SnapToDevicePixels и UseLayoutRounding –
@EdPlunkett первый раз, когда я слышу об этом помощнике, как я мог его реализовать здесь? Не могли бы вы привести мне пример? Большое спасибо Ed –
Это свойства элементов XAML. '