none
C#: Button mit zwei Textboxen

    Frage

  • Hallo zusammen,

    ich habe ein kleines Layout-Problem:

    Ich habe einen Button mit den Content "Klick mich". Soweit so gut, möchte aber noch zwei kleine TextBoxen jeweils in den Ecken des Button platzieren. Doch irgendwie gibt es ständig eine neue Fehlermeldung.

    Was mache ich falsch ? Oder kann man das gar nicht so ohne weiteres machen ??

    Danke für Eure Hilfe.

    LG Michael

    Sonntag, 15. Dezember 2013 22:47

Antworten

  • Hallo,
    du hast HorizontalAlignment statte HorizontalContentAlignment (gleiches für Vertical) für den Button fest gelegt. Du richtest den Button also nach außen hin aus und nicht das Innere. Bei mir sieht es nach der Änderung so aus:

    Ich würde dir noch empfehlen eine Mindestbreite (MinWidth="30") für die TextBox fest zulegen, denn wenn diese leer ist, kann man die kaum sehen.

    Wenn du noch etwas ganz anderes willst, dann erstelle mal eine Grafik, die uns das richtig zeigt.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert Michael80xxx Samstag, 21. Dezember 2013 22:58
    Samstag, 21. Dezember 2013 10:54

Alle Antworten

  • Hallo Michael,

    gib mal folgenden XAML-Code für den Button ein:

    <Button Name="btnClickMich" Width="200" Height="80" Click="btnClickMich_Click">
     <StackPanel >
       <TextBox>TextbooxInhalt</TextBox>
       <Label> "Klick mich!"</Label>
       <TextBox >Textboxinhalt</TextBox>
     </StackPanel>
    </Button>


    an stelle des StackPanels kannst Du natürlich auch andere Panels verwenden, kommt darauf an wie das Layout des Buttons aussehen soll.

    Grüße

    Roland


    • Bearbeitet dt125fahrer Montag, 16. Dezember 2013 12:49
    Montag, 16. Dezember 2013 12:47
  • Hallo Roland,

    erstmal danke für die Antwort. Ich habe es eben ausprobiert und es klappt.
    Bis auf die Sache mit den Ecken. Meine TextBox ist in der Mitte des Buttons und ich schaffe es nicht, sie in die Ecke z.B. oben rechts zu schieben.

    LG Michael

    Montag, 16. Dezember 2013 21:54
  • Hallo,
    wie dt125fahrer schon sagte, kannst du auch andere Container-Elemente nutzen. Eventuell kannst du es über ein Grid lösen:

            <Button Height="80" Width="250" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
                <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Klick mich!"/>
                    <TextBox HorizontalAlignment="Right" VerticalAlignment="Top" MinWidth="50"/>
                </Grid>
            </Button>

    Wie du in dem Code siehst arbeite ich hier nur mit den Alignments. Du kannst natürlich auch mit den Spalten- und Zeilendefinitionen des Grids arbeiten. Wichtig sind die Horizontal- und VerticalContentAlignment-Eigenschaft des Buttons. Diese sorgen dafür, das das Grid die gesamte Fläche einnimmt.

    Mit einem StackPanel ginge es unter Umständen auch, aber es ist nicht so frei anpassbar  wie bei einem Grid.

    Eventuell musst du auch noch mit der Margin- und Padding-Eigenshcaft herum probieren bis du alle Rahmen los bist.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Montag, 16. Dezember 2013 22:02
  • Hallo und guten Morgen,

    also ich jetzt den folgenden Code und es sieht nicht so aus wie ich mir das vorstelle:

    <Button HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="410" Height="200" x:Name="test">
                <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                    <TextBlock HorizontalAlignment="Left" VerticalAlignment="Bottom" Text="und nu?" />
                    <TextBox HorizontalAlignment="Right" VerticalAlignment="Top" />
                </Grid>
            </Button>

    Dabei habe ich es doch so gemacht, wie hier im Forum beschrieben.

    LG Michael

    Samstag, 21. Dezember 2013 10:47
  • Hallo,
    du hast HorizontalAlignment statte HorizontalContentAlignment (gleiches für Vertical) für den Button fest gelegt. Du richtest den Button also nach außen hin aus und nicht das Innere. Bei mir sieht es nach der Änderung so aus:

    Ich würde dir noch empfehlen eine Mindestbreite (MinWidth="30") für die TextBox fest zulegen, denn wenn diese leer ist, kann man die kaum sehen.

    Wenn du noch etwas ganz anderes willst, dann erstelle mal eine Grafik, die uns das richtig zeigt.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert Michael80xxx Samstag, 21. Dezember 2013 22:58
    Samstag, 21. Dezember 2013 10:54
  • Oh man,

    stimmt, dass hatte ich völlig übersehen.

    Vielen Dank, es klappt natürlich.
    Man muss es nur richtig machen :-)

    LG Michael

    Samstag, 21. Dezember 2013 22:57