gpt4 book ai didi

wpf - 如何使用 ControlTemplate 设置控件的 Width 或 Height 属性?

转载 作者:行者123 更新时间:2023-12-04 13:49:30 24 4
gpt4 key购买 nike

如何使用 ControlTemplate 设置控件的宽度或高度?

例如,我有这个模板:

<ControlTemplate x:Key="GridSplitterTemplate" TargetType="{x:Type GridSplitter}">
<!-- What goes here? -->
</ControlTemplate>

这是模板用法:

<GridSplitter Template="{StaticResource GridSplitterTemplate}"
Grid.Column="1" ResizeDirection="Columns" VerticalAlignment="Stretch" HorizontalAlignment="Center"/>

我还有几个 GridSplitter,所有这些都应该有 GridSplitter.Width="10"。如何使用 ControlTemplate 设置一次?

最佳答案

如果您想使用 ControlTemplate 对宽度/高度进行“硬编码”,则只需设置根元素的宽度/高度:

<ControlTemplate x:Key="GridSplitterTemplate" TargetType="{x:Type GridSplitter}">
<!-- What goes here? -->
<Grid Width="10" Height="10">
</Grid>
</ControlTemplate>

不过我认为@lll 有一定的道理——这通常是您会用样式做的事情。如果您想要一个不同大小的 GridSplitter 实例会怎样?使用这种方法您不会丢失任何东西:

<Style x:Key="GridSplitterStyle" TargetType="{x:Type GridSplitter}">
<Setter Property="Width" Value="10" />
<Setter Property="Height" Value="10" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate x:Key="GridSplitterTemplate" TargetType="{x:Type GridSplitter}">
<Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

现在,只需让您的实例引用样式而不是控件模板:

<GridSplitter Style="{StaticResource GridSplitterStyle}"

这允许您仍然拥有默认的高度/宽度 10,但实例可以在需要时覆盖它:

<GridSplitter Style="{StaticResource GridSplitterStyle}" Width=20

关于wpf - 如何使用 ControlTemplate 设置控件的 Width 或 Height 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22360767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com