簡體   English   中英

更改復選框大小 WPF

[英]Change checkbox size WPF

我想在 WPF 中做一個更大的復選框。

我發現我需要做一個控制模板,這里有一個例子: http://msdn.microsoft.com/en-us/library/ms752319.aspx

如果我使用該代碼,則復選框與默認外觀不同。 我要做的就是更改邊框寬度和高度屬性。

我需要一個看起來與默認值完全相同的控件模板,從那里我將只更改寬度和高度。 有誰知道我在哪里可以找到一個? 還是更好的方法?

這個怎么樣?

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

如果 integer 值不是您想要的,您可以為 ScaleX 和 ScaleY 使用雙精度值。

默認 ControlTemplates 可以在 MSDN上找到(請參閱Default WPF Themes鏈接)。

確保將相應的主題命名空間添加到您的 xaml 文件以引用必要的主題控件

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

我不確定您是否可以籠統地指定它,您可能還需要添加引用。

這里的問題是您不能真正指定邊框大小,因為控件封裝了它。

我找到的最佳解決方案是將其包裝在 ViewBox 中:

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

您可以使用復選框的可視化樹,當您想要的元素存在時,通過顯式設置寬度和高度在運行時更改它們。 使用 Peter Blois 的 snoop 或類似的方法來查看是否有可以使用 FindName 訪問的命名元素; 如果不是,您將不得不猜測(例如,某些 styles 可能有兩個 Border 元素,您必須選擇一個)並明確地遍歷可視化樹。

請記住,如果您沒有找到要查找的元素,您的代碼應該什么都不做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM