我正在尝试做一个带有嵌入式放大镜图标的搜索TextBox。到目前为止,我有以下标记:
<Border DockPanel.Dock="Bottom" Margin="2,4,0,4"
BorderThickness="1" SnapsToDevicePixels="True"
BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}">
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Right">
<Image Source="/Resources/search-13x13.png" Width="13"/>
</StackPanel>
<TextBox Name="searchTextBox" DockPanel.Dock="Bottom" BorderThickness="0"
Text="{Binding FilterText, UpdateSourceTrigger=PropertyChanged}"/>
</DockPanel>
</Border>但是,我在SystemColors中找不到与标准TextBox边框具有相同颜色的条目。默认情况下,此颜色为浅蓝色。我真的很愚蠢吗?!?
编辑:顺便说一句,图像包含在堆叠面板中,因为我计划在那里放一个下拉箭头。
发布于 2009-06-05 13:27:20
您可以尝试使用Microsoft.Windows.Themes.ListBoxChrome而不是边框;这是TextBox的默认模板所使用的:
<ControlTemplate TargetType="TextBoxBase"
xmlns:mwt="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero">
<mwt:ListBoxChrome Name="Bd" SnapsToDevicePixels="True">
<ScrollViewer Name="PART_ContentHost"
SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
</mwt:ListBoxChrome>
<ControlTemplate.Triggers>
<Trigger Property="UIElement.IsEnabled" Value="False">
<Setter TargetName="Bd" Property="Panel.Background"
Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
<Setter Property="TextElement.Foreground"
Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>您应该能够只使用ListBoxChrome而不是边框,而不是重新模板化TextBox来匹配您所呈现的代码。
发布于 2010-01-15 07:52:59
我可以通过以下方式通过编程获得它:
TextBox.BorderBrush = SystemColors.ControlDarkBrush;发布于 2011-08-09 04:53:20
对于任何正在寻找画笔列表以及它们的颜色在不同主题/操作系统下的外观的人
我会在这里看:http://blogs.msdn.com/b/wpf/archive/2010/11/30/systemcolors-reference.aspx
https://stackoverflow.com/questions/955597
复制相似问题