gpt4 book ai didi

c# - 如何将文本框添加到 Canvas

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:51 24 4
gpt4 key购买 nike

您好,我有一个带有 Canvas 的 C# 应用程序。我想以编程方式在其上放置一个文本框(带有文本)。我试了又试,但我得到的只是一个完全透明的矩形,我的文本框应该在那里。是我还是这是一个已知的困难?

更新:我应该提到..(抱歉!)我也在要绘制的对象中重写 OnRender,如下所示:

    protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.PushTransform(TransformRotation);
Draw(drawingContext);
drawingContext.Pop();
}

Draw 是这样实现的:

    public override void Draw(DrawingContext drawingContext)
{
Rect graphicRectangle = Rectangle;
ITransform2d transformToDisplay = Layer.TransformToDisplay;
if (transformToDisplay != null)
{
graphicRectangle = new Rect(transformToDisplay.Transform(Rectangle.TopLeft),
transformToDisplay.Transform(Rectangle.BottomRight));
}
textBox.Height = graphicRectangle.Height;
textBox.Width = graphicRectangle.Width;
Canvas.SetLeft(textBox, graphicRectangle.Left);
Canvas.SetTop(textBox, graphicRectangle.Top);
}

最佳答案

Canvas 是一个面板,其目的是安排和显示某种内容,我建议您不要这样做。

如果您需要一个带有 TextBox 的 Canvas,请使用组合,例如,在 Canvas 之上或之下创建一个带有 TextBox 的 UserControl,并在 UserControl 的界面上公开相关的属性和方法。


Use Panel elements to position and arrange child objects in Windows Presentation Foundation (WPF) applications. - MSDN

关于c# - 如何将文本框添加到 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7259212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com