我想在WPF中创建一个更大的复选框。
我发现我需要做一个控制模板,其中一个例子可以在这里找到: http://msdn.microsoft.com/en-us/library/ms752319.aspx
如果我使用该代码,则复选框与默认外观不同。我想做的就是改变边框宽度和宽度。高度属性。
我需要一个看起来与默认值完全相同的控件模板,从那里我只需更改宽度和高度。有谁知道我在哪里找到一个?还是更好的方法?
答案 0 :(得分:51)
这个怎么样?
<CheckBox>
<CheckBox.LayoutTransform>
<ScaleTransform ScaleX="2" ScaleY="2" />
</CheckBox.LayoutTransform>
</CheckBox>
如果整数值不完全符合您的要求,则可以对ScaleX和ScaleY使用双精度值。
答案 1 :(得分:4)
这是在msdn上找到的可能解决方案:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/98cf8a65-f4ca-4ff5-9851-c2989b91a013
答案 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>