0

我有以下资源字典:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style x:Key="StyleComboBox" TargetType="{x:Type ComboBox}">
        <Setter Property="BorderBrush" Value="DarkGray" />
        <Setter Property="BorderThickness" Value="1" />
        <!-- Styles for ComboBox -->
    </Style>
    <Style x:Key="StyleTextBox" TargetType="{x:Type TextBox}">
        <Setter Property="BorderBrush" Value="DarkGray" />
        <Setter Property="BorderThickness" Value="1" />
        <!-- Styles for Textbox -->
    </Style>
</ResourceDictionary>

怎么可能只在一个位置使用二传手?

4

3 回答 3

2

wpf 中的样式可以从其他样式继承。

<Style x:Key="baseStyle" TargetType="TextBlock">
     <Setter Property="FontSize" Value="12" />
      <Setter Property="Background" Value="Orange" />
 </Style>


 <Style x:Key="boldStyle" BasedOn="{StaticResource baseStyle}" TargetType="TextBlock">
     <Setter Property="FontWeight" Value="Bold" />
 </Style>

来源

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <Style x:Key="baseStyle" TargetType="Control">
            <Setter Property="BorderBrush" Value="DarkGray" />
            <Setter Property="BorderThickness" Value="1" />
        </Style>

        <Style x:Key="StyleComboBox" BasedOn="{StaticResource baseStyle}" TargetType="{x:Type ComboBox}">

            <!-- Styles for ComboBox -->
        </Style>
        <Style x:Key="StyleTextBox" BasedOn="{StaticResource baseStyle}" TargetType="{x:Type TextBox}">

            <!-- Styles for Textbox -->
        </Style>
    </ResourceDictionary>
于 2012-07-13T06:42:36.233 回答
1
  <Style TargetType="Control" x:Key="Controlbase">
        <Setter Property="Control.BorderThickness" Value="10"/>
    </Style>
    <Style  x:Key="StyleComboBox" TargetType="{x:Type ComboBox}" BasedOn="{StaticResource Controlbase}">
        <Setter Property="BorderBrush" Value="DarkGray" />
        <!-- Styles for ComboBox -->
    </Style>
    <Style x:Key="StyleTextBox" TargetType="{x:Type TextBox}"  BasedOn="{StaticResource Controlbase}">
        <Setter Property="BorderBrush" Value="DarkGray" />
        <!-- Styles for Textbox -->
    </Style>

我希望这将有所帮助。

于 2012-07-13T07:06:56.933 回答
0

好奇这是否对你有用。需要小心,因为您正在根据您的 Control 基本样式重新定义 ComboBox 的样式。大概控制模板不受此影响,因为那会很糟糕。IOW ComboBox 不仅仅是一个简单的控件,它需要继承样式并保留作为 ComboBox 的所有控件模板。IE 它是一个继承自 ItemsControl 等的 SelectorControl。

我想知道重新设置它的样式是否也会导致它更喜欢/使用控件的默认控件模板,而不是像 ComboBox 那样保留其“身份”。

于 2013-09-24T16:01:50.420 回答