[WPF/XAML] Grid column width autoatmisch mit dem Usercontrol heigh binden?



  • Hab hier grad leider nur mal xmal pseudo code:

    <UserControl x:Class="XAMLExample.Window1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="XAMLExample"
      Height="325"
      Width="593">
      <Grid>
        <Grid.ColumnDefinitions>
          <ColumnDefinition />
          <ColumnDefinition Widht=???????????/>
       </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Grid.Row="0">0,0</TextBlock>
        <TextBlock Grid.Column="1" Grid.Row="0">1,0</TextBlock>
        <TextBlock Grid.Column="0" Grid.Row="1">0,1</TextBlock>
        <TextBlock Grid.Column="1" Grid.Row="1">1,1</TextBlock>
      </Grid>
    </UserControl>
    

    Ich will hier die breite der zweiten grid spalte automatisch an die höhe des usercontrol binden. Gehts das in xamel oder muss ich das im size event im code machen?



  • <ColumnDefinition Widht="*"/>
    

    Damit nimmt die Spalte allen Platz ein, der nicht von anderen Spalten beansprucht wird, sozusagen "den Rest".



  • ja das weis ich, aber ich hab zwei spalten, und die rehte spalte so quasie immer quatratisch (seitengleichsein) also abhänge von der Kontrollhöhe. die erste spalte nimmt den rest ein. Weist wie ich mein?



  • Hmm.. denke nicht das du das im XAML hin bekommt (mir fällt jedefalls nicht ein ^^)
    Geht aber einfach im Measure-run. Der DesiredSize ist im MeasureOverride die große die Grid einnehmen kann/soll. Dort rechner aus wieviel groß den Zellen sein sollte und stell sie demendsprechend ein 😉



  • ERNGHIH schrieb:

    ja das weis ich, aber ich hab zwei spalten, und die rehte spalte so quasie immer quatratisch (seitengleichsein) also abhänge von der Kontrollhöhe. die erste spalte nimmt den rest ein. Weist wie ich mein?

    Vielleicht per Databinding (Spaltenbreite der rechten Spalte an die Controlhöhe binden, linke auf * lassen)?


Anmelden zum Antworten