当前位置: 首页 > 知识库问答 >
问题:

WPF ControlTemplate设置舍入按钮半径等于其宽度的一半

狄元魁
2023-03-14

我想使用ControlTemplate创建一个圆角按钮。这是我的代码,当我的宽度和高度等于30时,它能完美地工作。请问,是否可以将RadiusX和RadiusY设置为按钮width的一半(例如,RadiusX={width/2})?

        <ControlTemplate x:Key="RoundButton" TargetType="Button">
            <Grid>
                <Rectangle RadiusX="15" RadiusY="15"
                           Width="{TemplateBinding Width}" Height="{TemplateBinding Height}"
                           Fill="{TemplateBinding Background}" />
                <ContentPresenter Margin="3"
                                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
            </Grid>
        </ControlTemplate>

共有1个答案

凌联
2023-03-14
    <ControlTemplate x:Key="RoundButton" TargetType="Button">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Grid x:Name="PART_Grid" Visibility="Hidden"/>
            <Rectangle Grid.ColumnSpan="2"
                       RadiusX="{Binding ActualWidth, ElementName=PART_Grid, Mode=OneWay}"
                       RadiusY="{Binding ActualWidth, ElementName=PART_Grid, Mode=OneWay}"
                       Width="{TemplateBinding Width}" Height="{TemplateBinding Height}"
                       Fill="{TemplateBinding Background}" />
            <ContentPresenter Grid.ColumnSpan="2" Margin="3"
                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
        </Grid>
    </ControlTemplate>

Width=“{TemplateBinding Width}”Height=“{TemplateBinding Height}”--这是多余的。最好移除。

 类似资料:
  • 所以我试着做一个这样的布局: 使用FramLayout来保存片段,我希望frameLayout位于topAppBar下方和floatingActionButton上方,但我无法使其工作 我试图制作一个relativeLayout并将FrameLayout放在topApbar和coordinatorAyout之间,但它将FAB切割掉,而FAB下的圆角空间就像下面的图像一样消失了 这是我的activi

  • 我有一个JDialog,里面只有几个组件。我想使对话尽可能小。目前我使用的是pack()。这有一个意想不到的效果,就是将对话框的宽度缩小了很多,以至于标题不再完全在视野中。我希望对话框的宽度总是很大,这样标题总是完全在视野中。 我在用秋千。我意识到标题栏外观/FONT是由操作系统决定的。我更喜欢使用swing,所以目前我打算根据JLabel的字体计算标题字符串的宽度。然后我将设置我的一个组件的最小

  • 我目前正在Flutter中开发一个Android应用程序。如何添加圆角按钮?

  • 问题内容: 我在CSS的width属性上遇到了一些麻烦。我在div中有一些段落。我想使段落的宽度等于它们的内容,以使它们的绿色背景看起来像文本的标签。相反,我得到的是这些段落继承了div父节点的宽度,该宽度更宽。 问题答案: 默认情况下,标签是元素,这意味着它们占据了parent的100%。 您可以使用以下方法更改其显示属性: 但这使元素并排。 要使每个元素保持独立行,可以使用: (如果您使用fl

  • 我需要给一个减去的圆添加一个圆形径向梯度。我一直在尝试,但我不能得到一个圆形渐变。 1:整圆2:整圆中的径向梯度3:减去圆4:减去圆中的圆形径向梯度试验(不是我想要的)5:减去圆中的圆形径向梯度。这就是我想要获得的。 一旦我得到减去的圆(3),我应用径向梯度,但我得到(4)而不是(5)。 我也尝试过改变x和y的值,但是我没有得到我想要的。

  • 问题内容: 因此,我需要创建以下函数,但是如果不进行复杂的数学运算,我的头将无法想到PHP中的任何可能性。 轮 始终 到最接近的十进制(1.81 = 1.90,1.89 = 1.90,1.85 = 1.90) 总是 四舍五入到最接近的小数点(1.81 = 1.80,1.89 = 1.80,1.85 = 1.80) 轮 始终 到最接近的X.25 / X.50 / X.75 /×.00(1.81 =