Generic.xaml wird nicht berücksichtigt

29/12/2008 - 16:12 von Boskop | Report spam
Hallo,

Ich habe zwei Projekte. Eines mit einer DLL als Output. Darin habe ich das
Control TextBox (MyTextBox) überschrieben und ein Generic.xaml file erstellt,
wo ich den Hintergrund für die eigenen TextBoxen àndern möchte.

In Generic.xaml habe ich lediglich:

<Style TargetType="{x:Type Controls:MyTextBox}">
<Setter Property="Margin" Value="3"/>
<Setter Property="Background" Value="Red" />
</Style>

Das AssemlyInfo habe ich erweitert:

[assembly: ThemeInfo(
ResourceDictionaryLocation.None,
ResourceDictionaryLocation.SourceAssembly
)]

Wenn ich doch nun in einem 2. Projekt die MyTextBox brauche, sollte die doch
mit rotem Hintergrund und dem Margin kommen? Das tun sie jedenfalls nicht.
Habe ich einen Schritt vergessen, oder überschreibt mir die TextBox den Style
für MyTextBox?

Danke,

Michel
 

Lesen sie die antworten

#1 Markus Springweiler
29/12/2008 - 19:46 | Warnen spam
Boskop,

Ich habe zwei Projekte. Eines mit einer DLL als Output. Darin habe ich das
Control TextBox (MyTextBox) überschrieben und ein Generic.xaml file erstellt,
wo ich den Hintergrund für die eigenen TextBoxen àndern möchte.

In Generic.xaml habe ich lediglich:

<Style TargetType="{x:Type Controls:MyTextBox}">
<Setter Property="Margin" Value="3"/>
<Setter Property="Background" Value="Red" />
</Style>



Ich glaube du musst die Metadaten des DefaultStyles überschreiben, wie ich
es vor einigen Wochen mit meiner eigenen Textbox gemacht habe:

public class ImmediateTextBox : TextBox
{
static ImmediateTextBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ImmediateTextBox),
new FrameworkPropertyMetadata(typeof(ImmediateTextBox)));

TextBox.TextProperty.OverrideMetadata(typeof(ImmediateTextBox),
new FrameworkPropertyMetadata() { DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged });
}
}

<Style TargetType="local:ImmediateTextBox" BasedOn="{StaticResource {x:Type TextBox}}" />

Das "BasedOn" im Style ist, so glaube ich, auch wichtig.

/\/\arkus.

Ähnliche fragen