Eine benutzerdefinierte Textbox - WPF und Xaml

Möchte ich ein custom TextBox mit XAML und benutzerdefinierte Klasse mit einer zusätzlichen Eigenschaft TextBox genannt PosType. PosType dargestellt wird, in das rote Dreieck in die Seite.

Den TextBox sollte ein normales Textfeld mit genug Marge übrig, um nicht abfangen, der andere text.
Hier ist das Bild von dem gewünschten Aussehen der textbox.

Eine benutzerdefinierte Textbox - WPF und Xaml

Die Control-Klasse :

public class PosTextBox : TextBox
{
    public string PosType { get; set; }
}

**Der Stil, den ich schrieb : (ganz ähnlichen Ansatz, was ich will, außer ich hier verwendeten Rahmen und andere Teile können nicht korrekt sein. **

xmlns:Pro="clr-namespace:Prox.XamlControls">

<!-- Custom TextBox  -->
<Style x:Key="c1PosTextBox" TargetType="{x:Type Pro:PosTextBox}" >
    <Setter Property="OverridesDefaultStyle" Value="True" />
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Pro:PosTextBox}">

                <Grid>
                    <Border>
                        <Border>
                            <TextBlock Text ="{TemplateBinding Path= Pro:PosType}"></TextBlock>
                            <!--<TextBlock Text ="{TemplateBinding ElementName=Pro:PosTextBox, Path= Pro:PosType}"></TextBlock>-->
                        </Border>
                    </Border>
                    <Border Margin="5,10,5,10">
                        <ContentPresenter  Name="Content" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" TextBlock.Foreground="White"></ContentPresenter>
                    </Border>
                </Grid>

            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

So erstellen Sie diese benutzerdefinierten Textfeld das gewünschte Aussehen erreicht ist?

Edit:
Bitte führe mich zu beheben kleinere Probleme, basierend auf dem gleichen Ansatz, den ich oben erwähnt.

  • Ich denke, Funktionsindikatoren ist das, was du suchst
  • Ich bin mir ziemlich sicher, dass es getan werden kann, in beide Richtungen, ich höre gerne Antworten auf die beiden Ansätze, wenn jemand gerne teilen. Dank denen dieses
  • Die Umsetzung dieser mit funktionsindikatoren und die angeschlossenen Verhaltensweisen kann Ihnen mehr Flexibilität als die Verwendung von benutzerdefinierten Typ (wie PosTextBox) für jede UI-feature.
  • Nach dem spielen ein bisschen mit den vorgeschlagenen Ansätze, ich blieb mit den meinigen in diesem Fall, Basierend auf dem, was ich brauche, ich will genau den gleichen Ansatz wie ich in meiner Frage, Wenn jemand weiß, wie ich das beheben kann ich den code zur Verfügung gestellt, das zu tun job bitte helfen Sie mir auf diese Weise.
InformationsquelleAutor Sypress | 2013-09-26
Schreibe einen Kommentar