TextBox TextTrimming

Gui*_*ume 19 wpf xaml

我想TextTrimmingTextBox(不是TextBlock)上申请一个选项.

编译器告诉我,TextTrimming选项不是有效的属性Textbox.

我可以做一个奇特的控制,Textblock一旦它被点击将成为一个Textbox,反过来回到Textblock一旦焦点丢失.

在这种方式之前我想知道内置函数是否已经存在(或者是否有更聪明的方法)允许你这样做?

编辑:我最终想要的TextBox是修剪(全部内容将显示在工具提示中)但是当用户选择TextBox(进入"编辑模式")时,将显示完整内容(不修剪)因此用户将能够修改全文.当TextBox丢失焦点(返回"查看模式")时,内容将再次修剪.

谢谢

Dan*_*zey 36

尝试这样的风格(我添加了背景颜色以使变化明显):

    <Style TargetType="TextBox">
      <Setter Property="Background" Value="Yellow" />
      <Style.Triggers>
        <DataTrigger Binding="{Binding IsKeyboardFocused, RelativeSource={RelativeSource Self}}" Value="false">
          <Setter Property="Template">
            <Setter.Value>
              <ControlTemplate TargetType="TextBox">
                <TextBlock Text="{TemplateBinding Text}"  TextTrimming="CharacterEllipsis" Background="Red" />
              </ControlTemplate>
            </Setter.Value>
          </Setter>
        </DataTrigger>
      </Style.Triggers>
    </Style>
Run Code Online (Sandbox Code Playgroud)

  • 有时我只喜欢WPF和StackOverflow :-) (10认同)