2011-02-04 92 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