2011-02-04 88 views
0

总是在一个ComboBox中显示一个箭头按钮,显示用户单击的位置,然后显示一个带有值的列表。在WPF中,我们可以更改箭头按钮,我将使用我自己的箭头mage.functionality将是相同的。如果可能的话请给我看看这个xaml。谢谢如何自定义WPF中的ComboBox

+0

我不明白你在这里问什么。 – 2011-02-04 06:14:37

回答

2

我的理解是,你想自定义组合框的箭头,并有你自定义的箭头图像。如果是这样的话,那么你可以通过修改组合框的控制模板轻松地做到这一点。

您可以使用Expression Blend编辑默认控件模板或从here复制该模板并进行修改。

箭在默认模板表示为命名的切换按钮控件模板内的路径 “箭”

如你所愿,让你在找什么

。你可以改变它
<Geometry x:Key="DownArrowGeometry">M 0 0 L 3.5 4 L 7 0 Z</Geometry> 
    <Style x:Key="ComboBoxReadonlyToggleButton" TargetType="{x:Type ToggleButton}"> 
     <Setter Property="OverridesDefaultStyle" Value="true"/> 
     <Setter Property="IsTabStop" Value="false"/> 
     <Setter Property="Focusable" Value="false"/> 
     <Setter Property="ClickMode" Value="Press"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ToggleButton}"> 
        <Microsoft_Windows_Themes:ButtonChrome x:Name="Chrome" SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}"> 
         <Grid HorizontalAlignment="Right" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"> 
          <Path x:Name="Arrow" Fill="Red" HorizontalAlignment="Center" Margin="3,1,0,0" VerticalAlignment="Center" Data="{StaticResource DownArrowGeometry}"/> 
         </Grid> 
        </Microsoft_Windows_Themes:ButtonChrome> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsChecked" Value="true"> 
          <Setter Property="RenderPressed" TargetName="Chrome" Value="true"/> 
         </Trigger> 
         <Trigger Property="IsEnabled" Value="false"> 
          <Setter Property="Fill" TargetName="Arrow" Value="#AFAFAF"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

感谢您的回答......我从不使用Expression Blend,因此如果您请详细说明我需要在Expression Blend中执行的所有步骤,那将对我有很大的帮助。谢谢。 – Thomas 2011-02-04 12:08:22