当前位置:  开发笔记 > 编程语言 > 正文

如何使RadioButton的Bullet对齐顶部?

如何解决《如何使RadioButton的Bullet对齐顶部?》经验,为你挑选了2个好方法。

我有一个多行单选按钮,我希望子弹在内容的左侧(默认情况下)与单选按钮控件的顶部对齐.在XAML中最简单的方法是什么?



1> Simon_Weaver..:

注意:一定要查看Rachel的答案 - 她将这一阶段进一步纳入通用模板


首先不要浪费你的时间VerticalAlignmentVerticalContentAlignment(甚至ControlTemplate).他们不会做你想做或想做的事.

如MSDN a BulletDecorator(CheckBox和RadioButton用于呈现无线电/检查按钮的控件)所述,将自动设置图标的位置.您无法对此进行额外控制:

当Child对象是文本对象时,Bullet总是与第一行文本对齐.如果Child对象不是文本对象,则Bullet对齐到Child对象的中心.

除非您更改控制模板(不必要),否则只有在内容为文本时才能将收音机/支票图标置于顶部.

因此,如果你做这样的事情,它看起来不会很好,因为无论VerticalAlignment你试图设置多少属性,你都无法移动图标.


    
        
        
    

幸运的是,您可以在TextBlock使用中添加任何您想要的东西InlineUIContainer.第一行中的文本(或内容)将自动指示图标的位置.如果你想在第一行下面不是文本的东西,只需使用然后

这是一个超大的例子,TextBox可以更清楚地显示正在发生的事情.



    

        

        
                      
        

        
            
            
        

            

        
            
                
                
            
        

    



2> Rachel..:

我已经基于Simon Weaver的答案构建了一个相对通用的模板,可以在大多数情况下使用,而不必记住一直定制RadioButton.Content.


    
        
            
            
                
            
        
    

要解释模板的工作原理:

TextBlock是因为默认情况下,如果内容是Text对象,则RadioButton项目符号与文本的第一行对齐(a Label将无效)

LineBreak内容包装到新行,以便创建第一行

InlineUIContainer是,所以我们可以将非文本内容转换成一个TextBlock

ContentPresenter是保持实际内容,它具有负上边距,以消除该留下的空间LineBreak物体.

这是一些示例内容:


    
        
            
    

    
        
            
    


    
        
            
    

它看起来如何:

在此输入图像描述

我唯一不满意的ContentPresenter是硬编码的负上边距,因为如果你改变字体大小,你必须手动调整边距.

Margin计算换行符({TemplateBinding FontSize}?)的高度的属性构建转换器可能不是那么难,甚至是默认情况下具有此行为的RadioButton控件的扩展版本,但是现在我很好使用基于我的应用程序的默认字体大小的硬编码-21.

此外,您可能希望将一些添加TemplateBindingsRadioButton的模板,如果你想继承原来的其他属性RadioButton,如利润率,填充,对齐等我只势必IsChecked保持它的简单的目的.


@redsolo要从主RadioButton传递到模板化RadioButton的任何属性都需要添加到模板化RadioButton中,例如:“ GroupName =” {TemplateBinding GroupName}“。我没有全部添加它们,因为这会太多代码,但是那绝对是重要的:)
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有