c# - 如何在 UWP 中的文本块中绘制一条穿过文本的醒目水平线?
问题描述
我想做这样的事情。
TextStyle 属性不提供类似的东西。有什么方法可以轻松实现吗?
更新:
感谢您回答有关使用 TextDecoration 的问题。但是,它有点太薄了,不能有不同的颜色。有没有更灵活的解决方案?
解决方案
我最终自己解决了这个问题。我使用绑定在 TextBlock 上绘制自定义线。行端点派生自绑定属性返回的 TextBlock 大小和偏移量。
<TextBlock x:Name="textLabel" Text="HelloWOrld}" Foreground="WhiteSmoke" FontSize="12" FontFamily="Arial" VerticalAlignment="Center" RelativePanel.RightOf="visibleUI" DoubleTapped="OnEditNameBegin" />
<Line Name="crossOutLine" Stroke="Red" StrokeThickness="4"
X1="{x:Bind LayerData.nameLabelX1, Mode=OneWay}"
Y1="{x:Bind LayerData.nameLabelY1, Mode=OneWay}"
X2="{x:Bind LayerData.nameLabelX2, Mode=OneWay}"
Y2="{x:Bind LayerData.nameLabelY2, Mode=OneWay}"/>
装订部分:
public float nameLabelX1 { get => 0; }
public float nameLabelY1 { get => (float)textLabel.DesiredSize.Height /2; }
public float nameLabelX2 { get => (float)textLabel.DesiredSize.Width;}
public float nameLabelY2 { get => nameLabelY1; }
推荐阅读
- javascript - 如何从 API 调用显示单个 JavaScript 对象/JSON 项
- d3.js - 如何将 MKT 表达式转换为 Albers 投影的 D3 选项?
- android - 如何使用数据绑定 MVVM 将单个 TextWatcher 用于多个 EditText?
- amazon-web-services - 如何在不进入下一行的情况下添加代码(CF -> ConfigRule Resource)
- cygwin - 在 mintty (cygwin) 控制台上显示重音字符?
- sql - 正则表达式在 Oracle SQL 中不起作用
- c++ - 双循环变量的相等条件:未指定或未定义?
- c# - 是否有可能在 sql 中包含 foreach 循环?
- acumatica - 我们如何覆盖 Acumatica 中的 Print Shipment Confirmation 报告名称
- amazon-web-services - 共享来自 CloudFormation 嵌套堆栈的输出