WPF: TextTrimming auf einem ContentPresenter

8

Gibt es eine einfache Möglichkeit, TextTrimming nur mit einem ContentPresenter zu verwenden?

Ich habe Stile für TextBlock und AccessText impliziert, bei denen TextTrimming auf CharacterEllipsis gesetzt ist, aber nicht vom ContentPresenter. Ich kann den ContentPresenter in einen AccessText oder TextBlock ändern und dort festlegen, aber die Vorlage behandelt nur den Textinhalt.

Irgendwelche Vorschläge?

Danke!

    
dex3703 27.04.2011, 21:37
quelle

1 Antwort

10

Implizite Stile für Elemente, die von UIElement abgeleitet sind, aber nicht von Control, werden nicht angewendet, wenn das Element in der Vorlage eines Steuerelements definiert ist, es sei denn ist der implizierte Stil in den Ressourcen der Anwendung definiert. Dasselbe gilt für TextBlocks, die von ContentPresenter verwendet werden.

Zum Beispiel wird im folgenden XAML der TextBlock, der letztendlich verwendet wird, um den Inhalt der Schaltfläche darzustellen, nicht den impliziten Stil erhalten:

%Vor%

Wenn Sie genau denselben Style verwenden und ihn in die Ressourcen der Anwendung verschieben, sind beide rot:

%Vor%

Sie können also Ihren impliziten Stil entweder in Anwendungsressourcen verschieben, was im Allgemeinen keine gute Idee ist. Oder Sie können die Anzeige für das jeweilige Szenario anpassen. Dazu kann das Hinzufügen einer impliziten DataTemplate oder das Anpassen der Vorlage eines Steuerelements gehören.

Wenn Sie mehr Informationen bereitstellen können, dann wäre es einfacher zu wissen, welcher der beste Ansatz ist.

    
CodeNaked 28.04.2011, 00:18
quelle