根据C#wpf窗口大小调整列表框大小
我使用Visual Studio 2012制作了一个C#metro wpf应用程序。我在窗口中添加了一个列表框 但当我重新调整窗户的尺寸时,它的尺寸保持不变 这是我当前的代码根据C#wpf窗口大小调整列表框大小,c#,wpf,visual-studio-2012,listbox,mahapps.metro,C#,Wpf,Visual Studio 2012,Listbox,Mahapps.metro,我使用Visual Studio 2012制作了一个C#metro wpf应用程序。我在窗口中添加了一个列表框 但当我重新调整窗户的尺寸时,它的尺寸保持不变 这是我当前的代码 <controls:MetroWindow x:Class="My_app.MainWindow" WindowStartupLocation="CenterScreen" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentati
<controls:MetroWindow x:Class="My_app.MainWindow"
WindowStartupLocation="CenterScreen"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="My application" Height="500" Width="1000" EnableDWMDropShadow="True" HorizontalAlignment="Center" HorizontalContentAlignment="Center" Closing="MetroWindow_Closing_1">
<Grid Margin="-1,0,1,0">
<TextBox controls:TextboxHelper.Watermark="Search here..." controls:TextboxHelper.ClearTextButton="True" x:Name="textBoxSearch" HorizontalAlignment="Left" Height="23" Margin="11,13,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="255" TextChanged="textBoxSearch_TextChanged" PreviewKeyDown="textBoxSearch_PreviewKeyDown" BorderThickness="0.5"/>
<Label x:Name="label1" Content="" HorizontalAlignment="Left" Margin="10,47,0,0" VerticalAlignment="Top" Height="17" Width="29"/>
<ListBox x:Name="listBoxSuggestions" HorizontalAlignment="Left" Height="397" Margin="10,62,0,0" VerticalAlignment="Top" Width="255" SelectionChanged="listBoxSuggestions_SelectionChanged" PreviewKeyDown="listBoxSuggestions_PreviewKeyDown" GotFocus="listBoxSuggestions_GotFocus"/>
<TextBox x:Name="textBoxResult" HorizontalAlignment="Left" Height="449" Margin="321,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="661" PreviewKeyDown="textBoxResult_PreviewKeyDown" HorizontalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Auto" TextChanged="textBoxResult_TextChanged" BorderThickness="0"/>
</Grid>
</controls:MetroWindow>
列表框的底部应该是窗口的底部(始终保持相同的小间隙)。我怎样才能做到这一点?我应该如何更改代码?给你
从列表框中删除垂直对齐和高度,它将根据窗口高度调整高度
<ListBox x:Name="listBoxSuggestions" HorizontalAlignment="Left" Margin="10,62,0,0" Width="255" SelectionChanged="listBoxSuggestions_SelectionChanged" PreviewKeyDown="listBoxSuggestions_PreviewKeyDown" GotFocus="listBoxSuggestions_GotFocus"/>
如果需要根据窗口的宽度调整列表框的宽度,也可以删除
水平对齐
和宽度
。寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。将添加代码。我想这些细节已经足够有人知道了。但它不太可能帮助未来的读者。删除XAML和水平/垂直对齐中的固定尺寸和边距。另外,不要使用Visual Studio设计器。添加了代码。我使用VS设计器。有固定尺寸的。希望这会有助于你的想法:)谢谢你,太好了。请再问一个问题,我怎样才能将窗口的标题居中。它是左对齐的。请尝试在窗口元素中添加TextBlock.TextAlignment=“Center”
,如果这对您不起作用,那么您可以为您的窗口定义自定义WindowChrome。请参阅以获取参考。它也将所有文本置于其他元素的中心。所以我明确地将它们向左对齐。谢谢,太好了!顺便说一句,如果您已将左对齐应用于窗口中的所有其他文本块,则可以将TextBlock.TextAlignment=“Left”应用于根元素,即窗口的第一个子元素。如果你已经这样做了,那么干杯!快乐编码:)