2011-02-04 55 views
0

いつもComboBoxで矢印ボタンをクリックすると、ユーザーがクリックしてからリストがポップアップして値が表示されます。 WPFでは、私は自分の矢印mage.functionalityを使用する矢印ボタンを変更することができます同じです。可能であれば、それについて私にxamlを見せてください。ありがとうWPFでComboBoxをカスタマイズする方法

+0

ここでお聞きしたいことはわかりません。 –

答えて

2

私が理解しているのは、コンボボックスの矢印をカスタマイズし、あなたのカスタム矢印イメージを持っているということです。その場合、コンボボックスのcontroltemplateを変更することで簡単に行うことができます。

Expression Blendを使用して既定のコントロールテンプレートを編集したり、同じテンプレートをhereからコピーして変更することができます。矢印は 名前付きトグルボタンのControlTemplate内のパスとして、デフォルトのテンプレートに「アロー」

を表現する

あなたが

探しているものを得るために望むように。あなたはそれを変更することができます
<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

関連する問題