| 

.NET C# Java Javascript Exception

3
Moin,

WPF macht mich gerade ein wenig wahnsinnig. Ich habe folgendes XAML:

<Window x:Class="AreaTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" >
<StackPanel Width="Auto" Height="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<StackPanel Height="29" HorizontalAlignment="Left" Margin="10,10,10,10" Name="stackPanel1" VerticalAlignment="Stretch" Width="Auto" Orientation="Horizontal">
<TextBox Height="23" Name="textBox1" Width="120" TabIndex="0" />
<Button Content="Search" Height="23" Name="button1" Width="75" Click="button1_Click" IsDefault="True" Margin="10,0,0,0" />
<Button Content="Expand" Height="23" Name="btnExpand" Width="75" Margin="10,0,0,0" Click="btnExpand_Click" />
<Button Content="Collapse" Height="23" Name="bntCollapse" Width="75" Margin="10,0,0,0" Click="bntCollapse_Click" />
</StackPanel>

<DockPanel Margin="10,10,10,10" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TreeView Name="treeView1" MouseDoubleClick="treeView1_MouseDoubleClick" BorderThickness="1" Height="Auto" Width="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
</DockPanel>
</StackPanel>
</Window>


Meine Erwartung:
Bis auf beim 2. Stack Panel, sind alle Werte auf Auto und Stretch. Ich würde also erwarten, dass ich oben ein Panel mit fester Höhe habe und danach ein DockPanel, dass sich den restlichen Platz vom Fenster nimmt. Sollte der TreeView zu lange werden, dann erwarte ich eigentlich, dass eine Scrollbar erscheint.

Was wirklich kommt:
1) Das TreeView nimmt sich nur so viel Platz, wie die Daten im TreeView brauchen. Ich hätte eigentlich gerne, dass der komplette Platz genutzt wird.
2) Eine Scrollbar erscheint nur, wenn ich die Breite des Fensters kleiner mache und dann auch nur direkt am TreeView (ich kann also nur den Inhalt des TreeViews scrollen, aber z.B. nicht die Buttons), nicht aber am Fenster.
3) Eine vertikale Scrollbar bekomme ich nie.

Fragen:
a) Wie kann ich das TreeView davon überzeugen, dass es den kompletten Platz (= Größe des Fensters) unterhalb des StackPanels haben kann und sich auch automatisch nimmt?
b) Wie sage ich dem Fenster, dass es Scrollbars erscheinen lassen darf, wenn der Platz nicht reicht?
News:
31.01.2012
Feroc 1,2k 2 9
Hi, mach mal aus dem äußeren StackPanel ein DockPanel mit LastChildFill="True", StackPanel und Scrollbar geht aus irgendwelchen Gründen nicht zusammen (da bibt es auch eine relativ einleuchtende Erklärung für, die ich gerade nicht parat habe).
Zweite Möglichkeit: benutz als äußeres Element ein Grid, erste Zeile auf Auto, zweite Zeile (Mit dem Treeview) auf Height="*", dann nimmt sich Zeile 1 den Platz, den sie braucht und Zeile 2 den Rest
3. Dein Fenster hat gar keine Scrollbar
chriscolm 31.01.2012
@chriscolm: Danke, das hat funktioniert. Wenn du es noch als Antwort gibst, dann kann ich einen Haken dran machen.
Feroc 31.01.2012
1 Antwort
1
Hi, mach mal aus dem äußeren StackPanel ein DockPanel mit LastChildFill="True", StackPanel und Scrollbar geht aus irgendwelchen Gründen nicht zusammen (da bibt es auch eine relativ einleuchtende Erklärung für, die ich gerade nicht parat habe).
Zweite Möglichkeit: benutz als äußeres Element ein Grid, erste Zeile auf Auto, zweite Zeile (Mit dem Treeview) auf Height="*", dann nimmt sich Zeile 1 den Platz, den sie braucht und Zeile 2 den Rest
3. Dein Fenster hat gar keine Scrollbar
02.02.2012
chriscolm 126 1 3

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH