c# Expander 内容不在左边

问题描述

我遇到扩展器的内容不是从左边开始的问题,我该如何解决? 正如你在图片上看到的,我的扩展器的内容没有显示在最左边。我尝试了很多设置,不幸的是我没有找到解决方案。扩展器本身似乎也有一个与堆栈面板相对的边缘,我也想避免这种情况。 在扩展器上方,您可以看到一个网格,其中包含一个带有内容的文本块。该网格在更高级别的堆栈面板中具有正确的质量。

Expander exp = new Expander
        {
            Header = "TestExpander",Width = spStackPanel.Width,ExpandDirection = ExpandDirection.Down,IsExpanded = true,BorderBrush = Brushes.Yellow,BorderThickness = new Thickness(1),HorizontalAlignment = HorizontalAlignment.Left,HorizontalContentAlignment = HorizontalAlignment.Left,VerticalAlignment = VerticalAlignment.Top,VerticalContentAlignment = VerticalAlignment.Top,};

        TextBox tx = new TextBox
        {
            Text = "testText"
        };

        exp.Content = tx;

        spStackPanel.Children.Add(exp);

enter image description here

解决方法

对于有些含糊的答案,我无法发表评论,但分享用于创建屏幕截图的样式和 XAML 可能会有所帮助。默认情况下,Expander 的外观并非如此,因此我的猜测是您的样式中的某些内容或更高级别的控件之一(例如 StackPanel 或 Grid)正在影响 Expander 的布局。

示例可能是 TextBox 的无键样式,它应用了填充和/或水平对齐方式,然后会通过在代码段中创建一个新的 TextBox 以使其具有奇怪的对齐方式来影响您添加的内容。

,

我在这里写了一个测试,直接在没有 XML 的 .cs 文件中:

buttonGrid = new Grid();
        buttonGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(50) });
        buttonGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(50) });

        Expander exp = new Expander()
        {
            Header = "Test Expander",HorizontalAlignment = HorizontalAlignment.Left,Margin = new Thickness(0),IsExpanded = true
        };

        TextBlock label = new TextBlock()
        {
            HorizontalAlignment = HorizontalAlignment.Left,Text = "Test Text"
        };
        exp.Content = label;
        Grid.SetRow(exp,0);
        buttonGrid.Children.Add(exp);

        TextBlock text = new TextBlock()
        {
            HorizontalAlignment = HorizontalAlignment.Left,Text = "Test Text",Foreground = Brushes.White
        };
        Grid.SetRow(text,1);
        buttonGrid.Children.Add(text);

我知道扩展器通常不是这样的,所以我问我的问题;-) 也许有人让我寻找提示。

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...