myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und Silverlight » WPF - DataGridColumnHeader Template Button rechts docken und zweite Zeile volle Breite nutzen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

WPF - DataGridColumnHeader Template Button rechts docken und zweite Zeile volle Breite nutzen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Mandriva
myCSharp.de-Mitglied

Dabei seit: 07.10.2012
Beiträge: 12


Mandriva ist offline

WPF - DataGridColumnHeader Template Button rechts docken und zweite Zeile volle Breite nutzen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen..

brauche mal etwas schützenhilfe eurerseits, ich weis nicht genau ob ich mit beiden beinen auf dem schlauch stehe oder einfach einen falschen denkansatz habe..

ich benötige ein DataGridClomunHeader, welcher zwei zeilen und zwei spalten hat, soweit kein problem..
nun möchte ich das in der ersten zeile, die zweite spalte bzw das control(hier der Button) immer rechts angedockt wird und in der zweiten zeile, die zweite spalte den restlichen platz vollständig ausfüllt.(auch nach dem resize der spalte)

habe diverse variationen von controls und/oder ausrichtungen probiert die mir eingefallen sind, auch die foren- oder googlesuche half mir nicht wirklich weiter.

hier mal mein aktueller stand, das ganze befindet sich in einem UserControl

XML-Code:
<Grid x:Name="MainContent" Background="LightGray">
      <DataGrid x:Name="_DataGrid" VerticalScrollBarVisibility="Auto" IsReadOnly="True" HorizontalScrollBarVisibility="Auto" CanUserSortColumns="True" CanUserReorderColumns="True" CanUserAddRows="False" CanUserResizeRows="False" ItemsSource="{Binding CurrentDataTable}">

         <DataGrid.Resources>
            <Style TargetType="{x:Type DataGridColumnHeader}">
               <Setter Property="ContentTemplate">
                  <Setter.Value>
                     <DataTemplate>

                        <Grid>
                           <Grid.ColumnDefinitions>
                              <ColumnDefinition />
                           </Grid.ColumnDefinitions>
                           <Grid.RowDefinitions>
                              <RowDefinition />
                              <RowDefinition />
                           </Grid.RowDefinitions>

                           <Grid Grid.Row="0" Grid.Column="0">
                              <Grid.ColumnDefinitions>
                                 <ColumnDefinition />
                                 <ColumnDefinition />
                              </Grid.ColumnDefinitions>
                              <Grid.RowDefinitions>
                                 <RowDefinition />
                              </Grid.RowDefinitions>
                              <Label Grid.Row="0" Grid.Column="0" Content="{Binding}" />
                              <Button Grid.Row="0" Grid.Column="1" MinWidth="30" MaxWidth="30"/>
                           </Grid>

                           <Grid Grid.Row="1" Grid.Column="0" >
                              <Grid.ColumnDefinitions>
                                 <ColumnDefinition />
                                 <ColumnDefinition />
                              </Grid.ColumnDefinitions>
                              <Grid.RowDefinitions>
                                 <RowDefinition />
                              </Grid.RowDefinitions>
                              <ComboBox Grid.Row="0" Grid.Column="0" MinWidth="30"/>
                              <TextBox Grid.Row="0" Grid.Column="1" />
                           </Grid>

                        </Grid>
                     </DataTemplate>
                  </Setter.Value>
               </Setter>
            </Style>
         </DataGrid.Resources>
      </DataGrid>
   </Grid>

vlt hat jemand von euch ja einen anderen ansatz bzw ein anderes bsp für mich.

vielen dank im vorraus :)
22.04.2019 09:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.177
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ColumnDefinition hat eine  Width-Eigenschaft. Wenn du den Wert auf "*" setzt, dann wird die restliche Breite ausgefüllt.

Um ein Element rechts auszurichten, kannst du die  HorizontalAlignment-Eigenschaft verwenden.
22.04.2019 19:06 Beiträge des Benutzers | zu Buddylist hinzufügen
Mandriva
myCSharp.de-Mitglied

Dabei seit: 07.10.2012
Beiträge: 12

Themenstarter Thema begonnen von Mandriva

Mandriva ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

vielen dank fuer deine antwort :)

habe es natuerlich mit angabe der groesse und positionierung/ausrichtung schon versucht..
da klappt das mit dem ausrichten auch, nur passt sich da der bereich(hier Rot) nicht der eigentlichen breite der spalte an.
mit dem StackPanel und dem DockPanel habe ich gleichen effekt..
die breite, welche ich an die spaltenbreite angepasst haben moechte wird lediglich durch eingabe (bzw anpassung) in die textbox vergroessert..



wie gesagt vlt habe ich da einen falschen denkansatz oder sehe grade den wald vor lauter baeumen einfach nur nicht.

Mandriva hat dieses Bild (verkleinerte Version) angehängt:
Unbenannt.png
Volle Bildgröße

23.04.2019 08:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
witte
myCSharp.de-Mitglied

Dabei seit: 03.09.2010
Beiträge: 820


witte ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wahrscheinlich ist das Grid direkt hinter dem roten BEreich zuende. Versuche mal das Grid auf HorizontalAlignment.Stretch zu setzen, nicht den Button. Außerdem sollte es einfacher sein wenn beide Zeilen in einem Control wären.
23.04.2019 11:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Mandriva
myCSharp.de-Mitglied

Dabei seit: 07.10.2012
Beiträge: 12

Themenstarter Thema begonnen von Mandriva

Mandriva ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

hallo witte :)

HorizontalAlignment zeigt keine auswirkungen in dem fall.. das auslagern in ein eigenes control werd ich nachhergleich mal testen

danke dir :)
23.04.2019 14:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 4 Monate.
Der letzte Beitrag ist älter als 4 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 23.08.2019 09:34