Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TextBlock边框使TextBlock移动到另一个位置_C#_Wpf_Xaml - Fatal编程技术网

C# TextBlock边框使TextBlock移动到另一个位置

C# TextBlock边框使TextBlock移动到另一个位置,c#,wpf,xaml,C#,Wpf,Xaml,我正在尝试向TextBlock添加边框,并将其包装到边框块中。 但这会使TextBlock移动到另一个窗口位置。同样的情况也会发生 如果文本块被包装到网格中 <Border BorderBrush="#FF0B232F" BorderThickness="2" > <TextBlock Background="#FFCDCD5A" Grid.Column="4" Grid.Row="2" TextWrapping

我正在尝试向TextBlock添加边框,并将其包装到边框块中。 但这会使TextBlock移动到另一个窗口位置。同样的情况也会发生 如果文本块被包装到网格中

<Border BorderBrush="#FF0B232F" BorderThickness="2" >
<TextBlock 
      Background="#FFCDCD5A"
        Grid.Column="4" 
        Grid.Row="2" 
        TextWrapping="Wrap"  
        Width="214.8"
         Height="261.4" >
</Border>
更新

这个文本块的问题是它跨越了几个网格行

首先,我按照丹尼尔·马尔克斯的建议做了。 我还必须在边界定义中添加以下内容: 水平对齐=右垂直对齐=底部对齐 和Grid.RowSpan


此外,我还必须删除TextBlock边距。

这是因为当您将TextBlock放在标记之间时,实际上是在说TextBlock是边框的“子项”。这意味着文本块将被边框包围。因此,合理地假设TextBlock将跟随周围的边界。无论边界位于何处,它都将显示在边界内

您需要设置边框的位置,而不是文本块,以使其显示在您希望的位置:

<Border Grid.Column="4" Grid.Row="2" BorderBrush="#FF0B232F" BorderThickness="2" >
<TextBlock 
    Background="#FFCDCD5A"
    TextWrapping="Wrap"  
    Width="214.8"
    Height="261.4" />
</Border>

不适用于我,可能是因为我的文本块跨越多个网格行。我已经指定了网格行跨度,但结果是相同的。您想让textblock跨多行,但它不起作用?同样,您需要设置边框的Grid.RowSpan,该边框是TextBlock的父级,而不是TextBlock本身的父级。