Warum sind meine WPF-Fenstergrößen standardmäßig groß?
Ich habe eine wpf-Anwendung mit ein paar Formen. Zur design-Zeit sind Sie klein, und Sie sind nicht auf auto-Größe. Jedoch zur Laufzeit werden Sie riesige, auch ohne Inhalt in Sie, damit Sie groß werden.
Warum ist das passiert?
Hier ist eine der Formen
<Window x:Class="SuperPluginPicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:tree="clr-namespace:Aga.Controls.Tree;assembly=Aga.Controls"
mc:Ignorable="d"
d:DesignHeight="296" d:DesignWidth="634" Title="Plugin Selector" WindowStartupLocation="CenterOwner">
<Grid>
<DockPanel LastChildFill="true">
<StackPanel DockPanel.Dock="Bottom" Height="30" Orientation="Horizontal">
<Button Content="Ok" Name="btnOk" Click="btnOk_Click"></Button>
<Button Content="Cancel" Name="btnCancel" Click="btnCancel_Click"></Button>
</StackPanel>
<StackPanel DockPanel.Dock="Right">
<Label Content="Selected Plugins"></Label>
<ListBox Name="lstSelectedPlugins" Width="200">
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Name}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
<StackPanel DockPanel.Dock="Right" Width="100" VerticalAlignment="Center">
<Button Content="Add" Name ="btnAdd" Click="btnAdd_Click"></Button>
<Button Content="Remove" Name="btnRemove" Click="btnRemove_Click"></Button>
<Button Content="Remove All" Name="btnRemoveAll" Click="btnRemoveAll_Click"></Button>
</StackPanel>
<tree:TreeList x:Name="pluginTree">
<tree:TreeList.View>
<GridView x:Name="treeGrid">
<GridView.Columns>
<GridViewColumn Width="Auto" Header="Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<tree:RowExpander/>
<TextBlock Text="{Binding Name}"></TextBlock>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Author" Width="Auto" DisplayMemberBinding="{Binding Author}"/>
<GridViewColumn Header="Description" Width="Auto" DisplayMemberBinding="{Binding Type}"/>
</GridView.Columns>
</GridView>
</tree:TreeList.View>
</tree:TreeList>
</DockPanel>
</Grid>
</Window>
InformationsquelleAutor der Frage Jason Coyne | 2010-06-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine
<Window/>
mit diesem code:Dann, wenn Sie ausführen, die von Visual Studio wird nun ein Fenster der gleichen Größe wie die, die Sie in Ihre Frage. So, das ist nichts, was man explizit getan hat.
Was Sie erlebt haben, ist das standardmäßig berechnete Größe des WPF -
Window
. Für die unterschiedlichen Ergebnisse ist, geben Sie eineSizeToContent
parameter auf das Fenster, als paxdiablo darauf hingewiesen, oder explizit gesetzt, wird die Größe des Fensters mit derMinHeight
MaxHeight
Height
MinWidth
MaxWidth
und/oderWidth
Eigenschaften.InformationsquelleAutor der Antwort Rob Perkins
Warum nicht fügen Sie einfach ein:
den
Window
definition? Ich bin mir nicht sicher, wo die Standard-Größe kommt, aber ich habe eingestellt, dass bestimmte Größen auf meinem windows -, dies zu umgehen. Dann habe ich Größe dynamisch in der Anwendung, startup-code.Ich hoffe, dass WPF eine
pack
-ähnliche Funktion, wo Sie rekursiv setzt Steuerelemente basierend auf den bevorzugten Größen der sub-Steuerungen (schwenken und wxPython beide hatten diese Funktion), so möchten Sie vielleicht zu gehen suchen.Eigentlich ein bisschen suchen, hat sich die
Fenster.SizeToContent
Eigenschaften, die das, was Sie suchen. StandardmäßigManual
aber, wenn du es auf einem der anderen Werte (Width
Height
oderWidthAndHeight
), sehen Sie möglicherweise eine bessere Präsentation.In der Tat, ich habe gerade geklaut über den Windows-laptop und eingegeben:
in dem Fenster definition und es sieht perfekt Größe. Also, ich würde vorschlagen, ihm einen Versuch und sehen, ob es behebt (oder zumindest funktioniert) dein problem.
InformationsquelleAutor der Antwort
Design, die Sie sehen, zu klein, weil Sie blend-design Eigenschaften für das Fenster.
d:DesignHeight="296" d:DesignWidth="634"
Seit Grid ist eine dynamische layout-es wird Strecken, um das Fenster Breite & height. Beschränken Sie die Größe der Fenster, die Sie brauchen, um zu erwähnen, Höhe & Breite Eigenschaften der Fenster.
InformationsquelleAutor der Antwort Ragunathan