gpt4 book ai didi

WPF:如何在运行时双击更改按钮内容(文本)

转载 作者:行者123 更新时间:2023-12-03 07:33:02 25 4
gpt4 key购买 nike

我在 WPF 中有一个按钮,我想在双击它时更改文本,也就是说,我希望光标出现并键入要显示为内容的文本(与按 F2 时的行为类似)在桌面快捷方式上)。

我想我可以检测到双击,然后显示一个具有透明背景的文本框,这将使我获得光标,在这个新文本框中键入文本,将其设置为按钮内容并删除文本框,但这并没有似乎不是正确的方法。

<小时/>

我想我的想法是,我正在开发一个使用形状的图表工具。由于形状不是从 ContentControl 派生的,因此我无法在其中放置文本框,并且我想模拟这种行为。我正在考虑制作一个自定义控件,但这可能需要太多工作,而且我还不太熟悉这个主题。我想另一种方法是使用装饰器(也许是边框),因为它源自内容控制,所以我可以做乔建议的同样的事情。有什么想法吗?

我可以做的另一件事是将形状放在网格中,然后将文本框放在形状的顶部,但我不确定这将如何作为设计原则,而且我也不知道如果 HitTest 仅针对形状或网格。

最佳答案

由于这是 WPF,因此您可以毫无问题地将 TextBox 放入 Button 中。如果您不希望文本框具有边框和白色背景 - 即,如果您希望它看起来像您只是直接在按钮中键入 - 那么您可以通过将 BorderWidth 设置为 0 并将背景设置为 来删除它们透明。

您可能想要做的是让按钮的内容成为一个网格,其中包含正常内容(可能是 TextBlock)和文本框,并且文本框最初是隐藏的(可见性 = 折叠)。然后,当您收到双击事件时,您将隐藏 TextBlock 并显示 TextBox。

<Button>
<Grid>
<TextBlock Name="buttonText">Double-click to rename me</TextBlock>
<TextBox Name="buttonEdit" Visibility="Collapsed" MinWidth="100"/>
</Grid>
</Button>

关于WPF:如何在运行时双击更改按钮内容(文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7127233/

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