2011-06-11 13 views
6

Durumum aşağıdaki gibidir. WPF'de, iki Tarzayı bir kontrol için birleştirmenin bir yolu var mı?

böyle ListView Stil içeren bir App.xaml vardır: Ancak

<Style x:Key="{x:Type ListViewItem}" TargetType="ListViewItem"> 
    <Setter Property="SnapsToDevicePixels" Value="true"/> 
    <Setter Property="OverridesDefaultStyle" Value="true"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListBoxItem"> 
       ... 

, başka xaml içine biraz stilleri eklemek istiyorum, en böyle Window.xaml diyelim:

<ListView AlternationCount="2" Background="#FFECECEC"> 
    <ListView.Resources> 
     <Style x:Key="{x:Type ListViewItem}" TargetType="{x:Type ListViewItem}"> 
      <EventSetter Event="PreviewMouseDoubleClick" Handler="OnPreviewMouseDoubleClick" /> 
     </Style> 
    </ListView.Resources> 
</ListView> 

Yani, yapmak istediğim, temel stil için App.xaml biçimindeki stili varsayılan stil olarak tanımlamaktır. Ardından, her bir xaml'den olaylar ekleyerek bir içerik menüsü eklemek gibi bazı değişiklikler ekleyin.

Ancak, yukarıdaki uygulama ile, App.xaml dosyasında tanımlanan Stil, Window.xaml dosyasında tanımlanan Stille üzerine yazılacaktır.

Sorunu çözmenin ve bunu başarmanın bir yolu var mı?

<Style x:Key="Style1"> 
... 
</Style> 

<Style x:Key="Style2" BasedOn="{StaticResource Style1}"> 
... 
</Style> 

Btw: <Style x:Key="{x:Type ListViewItem}" biraz garip görünüyor

+0

etiketi [kodlama tarzı] (http://stackoverflow.com/tags/coding-style/info) tanımı ne diyor okumak ve gerekli işlemi yapın. Teşekkürler! –

cevap

9

Stiller bir BasedOn özelliği vardır. x:Key, xaml sözlüğünde benzersiz bir anahtar olmalıdır - genellikle bir dize. BasedOn özellik ihtiyaçlarınıza uygun

+0

Hızlı cevabınız için çok teşekkür ederim. Oh, bu doğru. x: Anahtar da tuhaftır. Çok teşekkürler. :) – Aki24x

İlgili konular