当我调整窗口大小时,元素重叠,我已经左右对齐设置,以便在调整大小时保持它们的位置。
这是代码,调整大小start private exam
不应重叠setting
,应该在setting
之前停止,请指导。
(编辑)完整代码&添加了解释我希望窗口调整大小,其他控件点击其他控件,它应该停止调整大小或提供滚动,而不是重叠在其他控件上。
我有stackpanel banner
张照片。当窗口垂直调整大小时,我不确定如何但没有其他控件重叠。但是,当调整大小和空间不足时,所有控件都会相互重叠。
<Window x:Class="Engine.ExamWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ExamWindow" WindowStartupLocation="CenterScreen">
<Grid x:Name="GridMain">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="105" />
<RowDefinition />
</Grid.RowDefinitions>
<Menu IsMainMenu="True" Background="Lavender" Grid.Row="0" >
<MenuItem Header="_Exam" >
<MenuItem Header="_Start practice" />
<MenuItem Header="_Start Virtual." />
<MenuItem Header="_Finish" />
<Separator />
<MenuItem Header="_Exit" Click="menuExamExit_Click" />
</MenuItem>
<MenuItem Header="_Navigation" />
<MenuItem Header="_Tools" />
<MenuItem Header="_Help" />
</Menu>
<StackPanel x:Name="StackPanelBanner" Grid.Row="1" />
<Grid x:Name="GridContent" Grid.Row="2">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition Height="80" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TabControl Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0">
<TabItem Header="All Exams">
<Grid Background="#FFE5E5E5">
<TextBlock HorizontalAlignment="Center" Padding="0,10,0,0">No history available</TextBlock>
</Grid>
</TabItem>
<TabItem Header="Practice Exams">
<Grid Background="#FFE5E5E5">
<TextBlock HorizontalAlignment="Center" Padding="0,10,0,0">No history available</TextBlock>
</Grid>
</TabItem>
<TabItem Header="Virtual Exams">
<Grid Background="#FFE5E5E5">
<TextBlock HorizontalAlignment="Center" Padding="0,10,0,0">No history available</TextBlock>
</Grid>
</TabItem>
</TabControl>
<StackPanel Grid.Row="2" Grid.ColumnSpan="2" Grid.Column="0">
<Grid>
<TextBlock HorizontalAlignment="Left" Padding="10,0,0,0" TextTrimming="CharacterEllipsis">Setting</TextBlock>
<TextBlock HorizontalAlignment="Right" Margin="0,0,120,0">Start Private Exam</TextBlock>
<TextBlock HorizontalAlignment="Right" Margin="0,0,10,0">Start Virtual Exam</TextBlock>
</Grid>
<TextBlock HorizontalAlignment="Right" Margin="0,0,10,0">Contact Support</TextBlock>
</StackPanel>
</Grid>
</Grid>
</Window>
答案 0 :(得分:1)
当包含三个TextBlocks的Grid的宽度太窄而不适合实际文本时,当然会有一些重叠。
你应该首先决定做什么。通常,当某个文本没有足够的空间时,它会被截断,通常使用省略号(...)。
如果您喜欢,只需按如下方式修改XAML:
<TextBlock HorizontalAlignment="Left" Padding="10,0,0,0" TextTrimming="CharacterEllipsis">Setting</TextBlock>
答案 1 :(得分:1)
您的解决方案将根据您希望窗口/文字的显示方式而有所不同;一旦你开始缩小你的窗口,你就会用尽空间来适应屏幕上的所有文字(如你所知)。
最简单的解决方案可能是在您的窗口上设置MinWidth
和MinHeight
属性,因此您可以限制允许小用户创建应用程序的位置。
你也可以缩小字体大小,或者在MinWidth
上设置文本的Grid
(虽然一旦你的窗口变得太小,你仍会遇到问题),还有一些其他选择。
这完全取决于你想要的结果。