UWP文本框带有省略号,用于在未聚焦时显示长文本

时间:2018-10-28 21:57:20

标签: xaml uwp

我希望在UWP应用程序中创建一个TextBox,如果它超出了TextBox的边界,则在文本末尾显示省略号。

我需要的是与this类似的东西,但是我需要的是UWP而不是WPF应用。

我相信我需要创建一种样式:

  1. 不重点显示时,TextBox中的TextBlock的TextTrimming值为CharacterEllipsis。
  2. 聚焦后,TextBox中的TextBlock删除TextTrimming值(或重置为默认值)。

我对UWP开发还很陌生,不确定如何做到这一点。

我已经尝试使用ChangePropertyAction使用以下方法,但是不确定如何在TextBox中定位TextBlock:

<TextBox Name="myTextbox">
    <Interactivity:Interaction.Behaviors>
        <Core:EventTriggerBehavior EventName="LostFocus">
            <Core:ChangePropertyAction TargetObject="?" PropertyName="TextTrimming" Value="CharacterEllipsis"/>
        </Core:EventTriggerBehavior>
        <Core:EventTriggerBehavior EventName="GotFocus">
            <Core:ChangePropertyAction TargetObject="?" PropertyName="TextTrimming" Value=""/>
        </Core:EventTriggerBehavior>
    </Interactivity:Interaction.Behaviors>
</TextBox>

我可能也走错了道路-作为概念验证,我尝试过自定义默认TextBox样式,以为TextBlock控件提供TextTrimming =“ CharacterEllipsis”值,但这不起作用(我也不希望它是可编辑的文本)。

有什么想法或建议吗?

1 个答案:

答案 0 :(得分:0)

我能够以标准TextBox的以下样式获得可行的解决方案。欢迎对改进此解决方案的任何评论。

Open video in Fullscreen mode