【问题标题】:xaml - anchor the left of a textblock to the right of the containerxaml - 将文本块的左侧锚定到容器的右侧
【发布时间】:2010-11-02 05:34:19
【问题描述】:

如果我有一个文本块,我想根据其内容的大小来改变其宽度,但我希望文本块的左侧与容器的右侧保持一定的间距...这是如何实现的?我觉得我忽略了一些简单的事情。如果这很重要,我专门使用 WPF。

【问题讨论】:

    标签: .net wpf silverlight xaml textblock


    【解决方案1】:

    解决方案是将 TextBlock 放在 StackPanel 中,如下所示:-

    <StackPanel HorizontalAlighment="Right" Width="200">
       <TextBlock Text="Some Text or binding" />
    </StackPanel>
    

    其中 Width 200 表示您希望TextBlock 的左边框与包含StackPanel 的元素的右边框之间的固定距离。

    【讨论】:

    • 是的,这样就可以了。我想我很好奇是否可以在文本块上设置直接属性来完成此操作,但我认为这将是唯一的方法。谢谢
    • @boomhauer:我猜你正在寻找类似于 WinForms Anchor 功能。 WPF 和 Silverlight 没有。
    【解决方案2】:

    试试HorizontalAlignment 属性。

    HorizontalAlignment="Right"
    
    <Grid x:Name="LayoutRoot" Background="Yellow">
        <StackPanel
            Background="AliceBlue"
            Margin="50">
            <TextBlock
                Text="Some text"
                HorizontalAlignment="Right"/>
            <TextBlock
                Text="Some other longer text"
                HorizontalAlignment="Right"/>
        </StackPanel>
    </Grid>
    

    产生这个输出:

    【讨论】:

    • 问题是:由于文本长度的变化,文本块的右侧会发生变化。所以盒子的左边会跳来跳去。所以,我希望左侧锚定到容器的右侧。关注?
    • 我想是的。试试 Horizo​​ntalAligment 属性。
    • 我希望文本的左边缘保持不变,因此实际上是左对齐的。但是,左对齐距容器右侧一定距离!
    • 是的,然后正如 Anthony 所显示的那样,您必须在 TextBlock 周围放置另一个容器才能完成您想要的操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 2010-12-06
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多