如何在C# WPF中将文本添加为矩形内容

11
我有一个填色的矩形,想在中间位置添加一些文字,请给出一些建议。
我有以下矩形,它被涂上了颜色。我想在中间位置添加一些文字,请提供一些解决方案。
var rect1 = new Rectangle
{
     Stroke = new SolidColorBrush(Colors.Red),
     Fill = new SolidColorBrush(Colors.Black),
     Width = 150,
     Height = 100,
     VerticalAlignment = System.Windows.VerticalAlignment.Top,
     HorizontalAlignment = System.Windows.HorizontalAlignment.Left
 };
 Grid.SetRow(rect, 0);
 TGrid2.Children.Add(rect1);
基本上,我想制作一个拖放功能。矩形1可以被拖动到矩形2上;矩形2只有边框颜色和透明填充体,并在拖放时用拖放的矩形1替换矩形2。 这就是为什么我制作了一个矩形,并尝试找出如何将文本添加到矩形中心作为内容,类似于按钮。
2个回答

23

如果你非常需要使用一个矩形,你可以模拟它!

<Grid>
    <Rectangle Fill="Red"/>
    <TextBlock Text="Hi there" Margin="5"/>
</Grid>

非常好的想法,对于我的现状来说很适用。但问题是,我必须为矩形提供宽度和高度以显示边框,如果我需要更长的未知文本,这将无法帮助我。 - ADi
@Bsienn 使用网格的宽度和高度来控制矩形和文本。TextBlock 上的 Margin 确保它不会重叠矩形边框。 - Gusdor
我输入了一个较长的字符串,文本从矩形框中溢出。根据您的建议,我知道我必须执行rect.width = text.width。但目前它对我的当前任务有效。 - ADi
@Bsienn在TextBlock上使用TextWrapping属性。 - Gusdor

7
GridBorder替换Rectangle,并在内部放置一个TextBlock

让我试试你的建议,很快就回来。谢谢回复。 - ADi
我正在思考与此相同的问题,因为我正在使用矩形进行触摸屏动画,并需要在其中添加标签。此时,我应该只使用常规按钮等命令吗?但是我能否对其进行转换? - Casey ScriptFu Pharr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接