【问题标题】:WPF C# TextBlock alignment doesn't work?WPF C# TextBlock 对齐不起作用?
【发布时间】:2014-10-10 04:03:30
【问题描述】:

我正在处理一个 WPF 中的小项目,我必须只使用 C# 工作,但几乎没有令人困惑的事情。对齐似乎根本不适用于某些元素,尤其是TextBlock。有时TextAlignment 有效,但仅此而已。我不确定出了什么问题。我使用的部分代码:

public static Canvas buttonRightPanelTile(this Canvas tile)
    {
        tile.Background = new SolidColorBrush(Color.FromArgb(255,50,50,50));
        tile.Height = 100;
        tile.Width = 100;

        TextBlock title = new TextBlock();
        title.Text = "Další\nfunkce";
        title.FontSize = Window.Current.Bounds.Height / 36;
        title.Foreground = new SolidColorBrush(Colors.White);

        title.HorizontalAlignment = HorizontalAlignment.Center;
        title.VerticalAlignment = VerticalAlignment.Center;
        title.TextAlignment = TextAlignment.Center;

        tile.Children.Add(title);


        return tile;
    }

共有三种对齐方式,它们都不影响平铺中的文本位置。 Tile 本身位于网格单元格中并正确对齐。

提前感谢您的建议。

【问题讨论】:

    标签: c# wpf textblock


    【解决方案1】:

    Canvas 不是动态尺寸布局的合适面板。它不符合对齐方式。

    它应该只用于固定大小的布局。对于动态布局,您应该使用网格

    要对齐 Canvas 上的控件,您必须将控件的顶部和左侧设置为一些绝对位置,例如:

    Canvas.SetLeft(title, tile.ActualWidth / 2);
    Canvas.SetTop(title, tile.ActualHeight / 2);
    

    为计算添加一些偏移量,以防需要根据您的方便在画布中心对齐控件。

    【讨论】:

      猜你喜欢
      • 2011-07-28
      • 2014-08-25
      • 1970-01-01
      • 2014-05-23
      • 2019-05-18
      • 1970-01-01
      • 2010-12-02
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多