Nasıl WPF birden fazla stilleri uygulamak için
WPF, nasıl FrameworkElement
birden fazla stilleri uygulamak istiyorsunuz? Örneğin, zaten bir tarzı olan bir denetim var. Ben de ilk esen olmadan eklemek istediğim ayrı bir tarzı var. Stilleri sadece diğer bir uzatamıyorum çok farklı TargetTypes.
CEVAP
Basit bir cevap yapmak için ne çalışıyorsunuz (en azından tarayıcısı üzerinden bu sürüm) yapamazsın bence.
Bu, belirli herhangi bir öğe için tek bir Stil uygulanabilir.
Diğerleri yukarıda belirtildiği gibi, ancak, belki de BasedOn
size yardım etmek için kullanabilirsiniz. Gevşek xaml aşağıdaki parça göz atın. Bunun için iki stilleri uygulamak istiyorum bu elemanın temel sınıf üzerinde var olan bir özelliği belirleyen temel bir tarzı var. Ve temel tarzı dayalı olan ikinci tarzı, başka bir özellik kurdum.
Yani buradaki fikir ... eğer bir şekilde ayrı özelliklerini ayarlamak istediğiniz ... göre miras hiyerarşisi unsuru ayarlamak istediğiniz birden fazla stil ... belki senin de geçici bir çözüm.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<Style x:Key="baseStyle" TargetType="FrameworkElement">
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
<Style TargetType="Button" BasedOn="{StaticResource baseStyle}">
<Setter Property="Content" Value="Hello World"/>
</Style>
</Page.Resources>
<Grid>
<Button Width="200" Height="50"/>
</Grid>
</Page>
Bu yardımcı olur umarım.
Not:
Not için özellikle bir şey. Eğer ButtonBase
, ikinci tarzı TargetType
(xaml ilk set yukarıda) değiştirirseniz iki Stiller alamadım. Ancak, bu kısıtlamayı aşmak için aşağıdaki xaml atın. Temel olarak, bu Tarz bir anahtar verir ve bu anahtar ile referans vermek gerekir.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<Style x:Key="baseStyle" TargetType="FrameworkElement">
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
<Style x:Key="derivedStyle" TargetType="ButtonBase" BasedOn="{StaticResource baseStyle}">
<Setter Property="Content" Value="Hello World"/>
</Style>
</Page.Resources>
<Grid>
<Button Width="200" Height="50" Style="{StaticResource derivedStyle}"/>
</Grid>
</Page>
Birden fazla uygulamak için nasıl CSS3...
Nasıl birden fazla anahtarı bir Harita...
Nasıl birden fazla çalıştırmak için .B...
Nasıl aynı yazı tipi için yazı tipi bi...
Nasıl bir dize C / birden fazla satır ...