我正在使用C#+ XAML开发Windows应用商店应用。当我添加一个属性TextWrapping
设置为NoWrap
的TextBox时,TextBox结束时会出现“X”。
所以,我需要删除这个“X”并且TextBox不能包装。
谢谢!
答案 0 :(得分:7)
正如大家所说,你真的不应该删除“X”,除非你有充分的理由这样做。
要删除X,而不是将TextWrapping设置为“NoWrap”,您必须将其设置为TextWrapping =“Wrap”
答案 1 :(得分:5)
X作为辅助功能。它可以更轻松地清除触摸设备上的框,因为选择所有文本并点击删除是非常艰巨的,需要多个步骤。
所以,请不要禁用此功能,除非您有非常重要的理由这样做。没有属性可以禁用“X”,产品团队也不打算禁用它。但是,出于教育目的,我将通过更改样式来显示您可以禁用它。
在Expression Blend中,右键单击文本框并选择编辑模板 - >编辑副本。为您的模板命名为'NoXTextBox',并确保将其保存在应用程序级别(否则您只能在当前页面上使用它)。
然后,Blend将切换到您正在编辑TextBox而不是页面的视觉外观的模式。在对象和时间轴面板中,您应该看到一个名为 DeleteButton 的元素。您可以从模板中删除该按钮并保存您的工作。单击对象和时间轴面板顶部的按钮,该按钮看起来像带有向上箭头的水平线(当您将鼠标悬停在此按钮上时,它将显示“将范围返回到[页面]”)。现在,您将返回编辑页面而不是编辑文本框。
要创建更多类似的文本框,您可以复制并粘贴它,或者在样式分支下的混合工具箱中,您将看到自定义的“NoXTextBox”。
同样,请不要禁用此功能,除非您有充分的理由这样做。老实说,我不能想到这样做的一个很好的理由,因为你打破了Windows应用程序用户期望的功能。我主要想回答你的问题,这样你就可以了解如何修改内置控件。
开发人员的支持,设计支持和更加出色的善意:http://bit.ly/winappsupport
答案 2 :(得分:5)
正如您从本文档中看到的那样,它解释了该功能well。正如您在使用Javascript,Html或Css时所看到的那样,您可以通过非常快捷的方式删除该字段。您只需使用级联样式表即可将其禁用。
现在,在样式表中你可以很容易地改变它:
input[type=text]::-ms-clear
{
border: 2px solid orange
}
大多数按钮非常易于在应用程序中实现一致的设计。但这不能回答你的问题,你如何用C#/ XAML禁用它?
在Textbox组件的内部,您会注意到指示视觉状态和可见性的代码。如果您注释掉该部分代码,它将禁用X.示例here:
如上所述,它是一个非常漂亮和有用的工具。特别是在触摸屏设备上;它不仅符合微软统一,而且还使UI更清晰,因为你有一个简单的方法来删除该字段中的项目。
我建议你不要删除它,希望这能为你解释一下这个问题。
答案 3 :(得分:0)
编辑控件模板并删除模板中的DeleteButton及其参考。
答案 4 :(得分:0)
这使X消失,并且在输入过程中也停止了文本的偏移。
input[type=text]::-ms-clear
{
visibility: collapse;
}
答案 5 :(得分:0)
对我来说,解决方案是设置IsReadOnly =“ True”的属性