更改复选框大小WPF

时间:2011-06-06 17:56:59

标签: wpf controltemplate

我想在WPF中创建一个更大的复选框。

我发现我需要做一个控制模板,其中一个例子可以在这里找到: http://msdn.microsoft.com/en-us/library/ms752319.aspx

如果我使用该代码,则复选框与默认外观不同。我想做的就是改变边框宽度和宽度。高度属性。

我需要一个看起来与默认值完全相同的控件模板,从那里我只需更改宽度和高度。有谁知道我在哪里找到一个?还是更好的方法?

5 个答案:

答案 0 :(得分:51)

这个怎么样?

<CheckBox>
    <CheckBox.LayoutTransform>
        <ScaleTransform ScaleX="2" ScaleY="2" />
    </CheckBox.LayoutTransform>
</CheckBox>

如果整数值不完全符合您的要求,则可以对ScaleX和ScaleY使用双精度值。

答案 1 :(得分:4)

答案 2 :(得分:3)

可以找到默认的ControlTemplates on MSDN(请参阅Default WPF Themes链接)。

确保将相应的主题命名空间添加到xaml文件中,以引用必要的theme controls

<theme:BulletChrome Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    RenderMouseOver="{TemplateBinding IsMouseOver}"
                    RenderPressed="{TemplateBinding IsPressed}"
                    IsChecked="{TemplateBinding IsChecked}"/>

我不确定您是否可以一般性地指定它,您可能还需要添加引用。

这里的问题是你无法真正指定边框大小,因为控件封装它。

答案 3 :(得分:0)

您可以使用复选框的可视树,当您想要的元素存在时,通过显式设置宽度和高度在运行时更改它们。使用Peter Blois的snoop或一些等价物来查看是否有可以使用FindName访问的命名元素;如果没有,你将不得不猜测(例如,某些样式可能有两个Border元素,你必须选择一个)并明确地浏览可视树。

请记住,如果找不到您要查找的元素,您的代码将无法执行任何操作。

答案 4 :(得分:0)

我发现的最佳解决方案是将其包装在ViewBox中:

<Viewbox Height="46" HorizontalAlignment="Left" >
    <CheckBox Content="Some Content"/>
</Viewbox>