【问题标题】:Fixing the position of elements in Visual Studio XAML GUI修复 Visual Studio XAML GUI 中元素的位置
【发布时间】:2015-03-10 11:10:41
【问题描述】:

我正在尝试通过制作简单的 XAML GUI 来学习如何在 Visual Studio 2013(WPF 应用程序)中工作。在 GRID 中,我使用了一些基本元素,如 TextBlock、TreeView、ListView 等... 现在这里出现了我的问题。在开始时,我已经在分辨率 350*525 上创建了我的“工作区”。我在那个工作区周围拖动元素,将它们放置在一个完美的位置和顺序中。正如您在我的屏幕截图中看到的那样,一切都适合该窗口:http://i.imgur.com/PnPFlw1.png

但是当我尝试调整窗口大小时,一切都搞砸了: http://i.imgur.com/nycSzhH.png 我怎样才能解决它?我希望所有内容都适合窗口,无论您调整多少大小,文本都应保留在边框内。

我希望你们能理解我的问题,并希望有人能够帮助我。

非常感谢!

【问题讨论】:

  • 您应该考虑改用相对位置(例如将元素放置在容器中,例如具有行/列定义的 Grid)。这将允许您的应用程序更好地处理调整大小。或者,您可以只修复窗口的宽度。
  • msdn.microsoft.com/en-us/library/bb514525%28v=vs.90%29.aspx 使用基于内容的设计与行和列,因此每当窗口大小自动更改时,它都会调整您的控件大小。 Rowdefination Height=Auto 和 columnDefination width=Auto 自动根据控制改变你的尺寸
  • @Dhru'soni 我在 GRID 内部工作,我在开始拖动元素之前做了一些 Grid 和 Rowdefinitions。我不确定我是否正确理解了您,所以您能否以简单的方式向我解释一下如何更改它?这是我的布局的打印屏幕和一些代码:i.imgur.com/hodinlm.png
  • @MikeEason 我在 GRID 内部工作,我在开始拖动元素之前做了一些 Grid 和 Rowdefinitions。我不确定我是否正确理解了您,所以您能否以简单的方式向我解释一下如何更改它?这是我的布局和一些代码的打印屏幕:i.imgur.com/hodinlm.png

标签: wpf visual-studio-2010 xaml user-interface visual-studio-2013


【解决方案1】:
<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <StackPanel Orientation="Vertical">
        <TextBlock Text="Xaml Gui" FontSize="25"/>
            <TextBlock Text="Try With this"/>
        </StackPanel>
        <StackPanel Grid.Row="1" Orientation="Vertical">
            <TreeView/>
            <TreeView/>
        </StackPanel>
        <StackPanel Grid.Row="1" Grid.Column="1" Orientation="Vertical">
            <ListBox Height="50" Width="100"/>
            <ListBox Height="50" Width="100"/>
        </StackPanel>
        <StackPanel Grid.Row="1" Grid.Column="2">
            <TextBlock Text="Put Your things here" FontSize="25"/>
            <TextBlock Text="Try it now " FontSize="25"/>
        </StackPanel>
    </Grid>

【讨论】:

  • 嗯,我想知道一些事情。如果我将文本放入该代码中,是每个元素都会变大,还是只是在周围留出空间?
  • 只有你改变的那个才会更大@HC1122
  • 好的,现在知道了。但我想知道,如何在这两个 TreeView 之间留出更多的空白空间,就像我之前所说的那样:i.imgur.com/PnPFlw1.png。现在所有东西都粘在一起了,没有可用空间。
  • 好吧,我认为 Margin="5" 使整个 TreeVeiw 周围有 5px 边框,但我希望它只是在第一个底部:/ 很抱歉打扰你我的问题。
  • 我希望你明白我想要做什么。
猜你喜欢
  • 2016-04-14
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2015-10-08
  • 1970-01-01
相关资源
最近更新 更多