是否可以让一个只读的WPF文本框显示前三个字符一种颜色,其余7个字符显示不同的颜色。我可以给予降价的最佳例子是201 103/478 。
客户要求此原因是因为库存号码具有以下格式YYYYMM / 999。客户端以YMM / 999格式引用库存号的90%以上。请求是YYY字符以浅灰色显示,剩余的YMM / 999字符显示为标准黑色。
目前使用文本框控件,因为库存号必须能够复制到剪贴板并允许通过上下文菜单进行排序。如果另一个控件更适合于完成着色,则复制&排序要求然后该解决方案是可以接受的。
答案 0 :(得分:3)
<TextBlock HorizontalAlignment="Right">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="Sample"/>
</ContextMenu>
</TextBlock.ContextMenu>
<Span Foreground="Gray"><Run Text="{controls:Binding Path=StockNumberPrefix}"/></Span><Run Text="{controls:Binding Path=ShortStockNumber}" Margin="0"/>
</TextBlock>
答案 1 :(得分:2)
您确定需要一个TextBox
吗?如果您可以使用TextBlock
,则可以将前3个字符放入不同的Span
(可以拥有自己的Foreground
画笔)。这样,您就无法通过绑定设置文本。
(如果这很重要,您可以将TextBlock
重新设置为TextBox
。)