如何将文本块设置为复选框内容

时间:2015-02-04 07:16:10

标签: wpf xaml checkbox

没有获得有关如何将文本块添加到XAML中的复选框内容属性的正确解决方案。 问题是没有为其他语言正确显示复选框内容。 所以我需要添加一个文本块并使用" CharacterEllipsis"来应用texttrimming。 请帮助您使用示例XAML代码

我为自定义复选框定义了其他属性:

            <uxCCl:UxCheckBox x:Name="btnShowHide"
                          Height="24"
                          MaxWidth="200"
                          Margin="16,0,0,0"
                          HorizontalAlignment="Left"
                          Command="{Binding Path=ShowHideErrorOutCommand}"
                          Foreground="#638EAC"/>

所以这样做就不行了:

<Checkbox.Content>
<Textblock> <Text></Textblock>
</Checkbox.Content>

请提出一些解决方案。

2 个答案:

答案 0 :(得分:2)

只需将TextBlock添加到CheckBox内容中,如下所示:

<CheckBox>
    <CheckBox.Content>
        <TextBlock Text="text block" TextTrimming="CharacterEllipsis"></TextBlock>
    </CheckBox.Content>
</CheckBox>

编辑:

  1. 像我上面建议的那样编辑自定义CheckBox。
  2. 将依赖项属性添加到自定义CheckBox:

    public string TextContent
    {
        get { return GetValue(TextContentProperty).ToString(); }
        set { SetValue(TextContentProperty, value); }
    }
    
    public static readonly DependencyProperty TextContentProperty = DependencyProperty.Register(
        "TextContent",
        typeof(string),
        typeof(YOURCLASSNAME),
        new PropertyMetadata(string.Empty)
        );
    
  3. 将绑定添加到TextBlock的Text属性:

    <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=TextContent}"></TextBlock>
    

答案 1 :(得分:0)

<CheckBox.ContentTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding}" TextTrimming="CharacterEllipsis"/>
    </DataTemplate>
</CheckBox.ContentTemplate>