【问题标题】:Anchor a TextBox to the right and Left (so it’s stretched when parent is resized)左右锚定一个文本框(因此在调整父级大小时它会被拉伸)
【发布时间】:2015-11-28 11:42:14
【问题描述】:

我正在寻找与 Winforms 的 Anchor 属性等效的 XAML。 我想将位于 Canvas(在 UWP 应用程序上)上的 TextBox 锚定到左侧和右侧,因此它始终是左侧 260 和右侧 10。我尝试了很多方法,但看起来最有希望的是:

<TextBox Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  TextWrapping="Wrap" Text="TextBox"  Margin="260,10,10,10"/>

它没有,但是锚定在右边。

【问题讨论】:

  • 您能否为您的 XAML 添加更多上下文?封闭容器的定义?
  • @Steve 没什么特别的 - 一个边距为 0 的网格。上面有一个边距为 10 的画布(和背景颜色)。并且在那 - 文本框。我确保删除所有其他内容,以免干扰。而且,是的,我运行了这个程序,而不仅仅是信任设计师。当我调整窗口大小时 - 画布被调整大小,但文本框没有。
  • @Steve 谢谢。但是我如何将Width="{Binding ActualWidth , ElementName=Canvas1}" 更改为绑定到Width - 270? (也许是一个基本问题,但我只是从 XAML 开始。我尝试简单地添加 - 270 但这不起作用。)

标签: c# .net xaml win-universal-app


【解决方案1】:

我会使用 3 列 Grid

<Grid x:Name="YourOuterGrid">
    <Grid VerticalAlignment="Top">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="160" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="10" />
        </Grid.ColumnDefinitions>
        <TextBox TextWrapping="Wrap" Grid.Column="1" />
    </Grid>
</Grid>

【讨论】:

  • 我接受了这个(你绝对值得代表你回答其他问题和评论!)但我会注意到设置Margins 通常是这里的解决方案,除了我不知道Canvas 的特殊之处在于它忽略了它们。
  • 你是绝对正确的。通常你只需要设置Margin,但我认为你想要一个父容器来包装它,因此答案是。 :)
猜你喜欢
  • 1970-01-01
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多