| 

.NET C# Java Javascript Exception

3
Hallo,
ich suche eine TextBox für Silverlight die einen Button enthält der den Text der Textbox bei Click einfach auf string.empty oder null setzt. Zu WPF gibt es ja da im Netz eine ganze Reihe von Lösungen, für Silverlight (4) habe ich aber leider bisher nichts gefunden.
21.06.2012
Hendrik Lösch 1,5k 9
2 Antworten
1
Hallo Hendrik,

ich würde ein eigenen Style dazu verwenden. Ein passendes DefaultTemplate findest du im MSDN. Im Bereich wo das ContentElement verwendet wird, dann dein Vorhaben mittels StackPanel o.ä. dann, deine TextBox (ScrollViewer) und dein (Grafik)Button nebeneinander (Orientation="Horizontal") setzen.


Das ist der Part, wo du die Anpassungen durchführen müsstest:
<!--snip -->
<Border x:Name="Border" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1" Opacity="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<Border x:Name="ReadOnlyVisualElement" Opacity="0" Background="#5EC9C9C9"/>
<Border x:Name="MouseOverBorder" BorderThickness="1" BorderBrush="Transparent">
<ScrollViewer x:Name="ContentElement" Padding="{TemplateBinding Padding}" BorderThickness="0" IsTabStop="False"/>
</Border>
</Grid>
</Border>
<Border x:Name="DisabledVisualElement" Background="#A5F7F7F7" BorderBrush="#A5F7F7F7" BorderThickness="{TemplateBinding BorderThickness}" Opacity="0" IsHitTestVisible="False"/>
<Border x:Name="FocusVisualElement" BorderBrush="#FF6DBDD1" BorderThickness="{TemplateBinding BorderThickness}" Margin="1" Opacity="0" IsHitTestVisible="False"/>
<Border x:Name="ValidationErrorElement" BorderThickness="1" CornerRadius="1" BorderBrush="#FFDB000C" Visibility="Collapsed">
<!--snip-->


Gib den Button einen Namen und dann kannst du mittels EventTriggerAction die beiden Elemente kommunizieren lassen.
30.06.2012
Mario Priebe 6,0k 3 9
Zunächst erstmal: Danke!!! Ich weiß nur noch nicht so recht wie du das mit der EventTrigger.Action meinst. Wenn ich versuche einen trigger für das Click Event des Buttons zu setzen sagt er mir, dass die TextBox so etwas nicht hat... Ich habe es jetzt im Code Behind gelöst, wäre aber an einer Lösung rein in Xaml sehr interessiert.
Hendrik Lösch 11.07.2012
0
Du kannst Dir recht schnell ein eigenes Control mit Hilfe von Behaviors (TargetedTriggerAction) erstellen.
Wie es funktioniert, findest Du hier.
Das ganze noch in ein Usercontrol auslagern. Fertig ;-)
22.06.2012
judgy 2,9k 8
1
Warum ein einzelnes Control in ein UserControl auslagern? Es gibt doch CustomControls, dies ist um einiges perfomanter. Und um dies noch "runder" zu mache, das CustomControl dann in eine externe Library (Ressources oder so) samt Styles auslagern.
Mario Priebe 30.06.2012

Stelle deine .net-Frage jetzt!