Silverlight:创建圆形按钮模板

2024-04-29

我决定尝试制作一个圆形按钮,因此使用表达式混合,我在 xaml 上放置了一个按钮控件。然后,我通过选择“编辑控制部件(模板)”->“编辑副本”来创建一个模板。我正在尝试设计它,使按钮的左侧和右侧始终是完美的半圆,这样无论按钮长得多高或多宽,角半径都会达到最大值的一半宽度或一半长度按钮,具体取决于哪个较小。这样,如果按钮拉高,顶部和底部将是完美的半圆,如果按钮拉宽,则左侧和右侧将是完美的半圆。是否有可能做到这一点?


这很接近,但使其成为完美的圆形边缘更困难。我是通过制作圆形而不是带有圆角曲线的矩形来实现的。看看这是否有帮助:

    <Style x:Key="roundButton"
       TargetType="Button">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Button">
        <Grid>
          <Grid.RowDefinitions>
            <RowDefinition Height="0.479*" />
            <RowDefinition Height="0.521*" />
          </Grid.RowDefinitions>
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.147*" />
            <ColumnDefinition Width="0.685*" />
            <ColumnDefinition Width="0.168*" />
          </Grid.ColumnDefinitions>
          <vsm:VisualStateManager.VisualStateGroups>
            <vsm:VisualStateGroup x:Name="FocusStates">
              <vsm:VisualState x:Name="Unfocused" />
              <vsm:VisualState x:Name="Focused" />
            </vsm:VisualStateGroup>
            <vsm:VisualStateGroup x:Name="CommonStates">
              <vsm:VisualState x:Name="MouseOver" />
              <vsm:VisualState x:Name="Normal" />
              <vsm:VisualState x:Name="Pressed" />
              <vsm:VisualState x:Name="Disabled" />
            </vsm:VisualStateGroup>
          </vsm:VisualStateManager.VisualStateGroups>
          <Path Margin="-2,8,2,8"
                Grid.Column="1"
                Grid.RowSpan="2"
                Fill="{TemplateBinding Background}"
                Stretch="Fill"
                Stroke="#FF000000"
                Data="M25.999998,0.5 L26.499998,0.55732149 L26.499998,0.50000316 L184.5,0.50000316 L184.5,0.55732256 L185,0.5 C199.0833,0.50000429 210.5,13.483747 210.5,29.500002 C210.5,45.516144 199.0833,58.500004 185,58.500004 L184.5,58.44268 L184.5,58.500004 L26.499998,58.500004 L26.499998,58.44268 L25.999998,58.500004 C11.916747,58.500004 0.5,45.516209 0.5,29.500002 C0.5,13.483672 11.916748,0.50000429 25.999998,0.5 z"
                StrokeThickness="0" />
          <ContentControl FontFamily="{TemplateBinding FontFamily}"
                          FontSize="{TemplateBinding FontSize}"
                          FontStyle="{TemplateBinding FontStyle}"
                          FontWeight="{TemplateBinding FontWeight}"
                          Foreground="#FFFFFFFF"
                          HorizontalContentAlignment="Center"
                          VerticalContentAlignment="Center"
                          Grid.ColumnSpan="3"
                          Grid.RowSpan="2"
                          Content="{TemplateBinding Content}" />
        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
  <Setter Property="Background"
          Value="#FFFF0000" />
</Style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Silverlight:创建圆形按钮模板 的相关文章

随机推荐

  • 如何为 HTTP GET 的多个 Key-Value 参数设计 REST URI

    我正在设计一个 RESTful API 一项服务应该提供多个键值对的查询功能 例如 客户端可以使用一个 HTTP GET 请求来查询不同的产品及其关联的数量 客户想要查询金额为 44 的产品 1 和金额为 55 的产品 2 我实际上不希望我
  • 文件系统和 Memcached 哪个缓存更快/更好?

    我认为我还不清楚 从文件或从 memcached 读取内容更快吗 为什么 Memcached 速度更快 但内存有限 HDD 很大 但 I O 速度比内存慢 你应该把memcached 最热门的东西 and 所有其他人 can go 缓存文件
  • 处理异常后如何从上次尝试的指令继续执行帧?

    我想处理一个NameError通过将所需的缺失变量注入到帧中 然后从上次尝试的指令继续执行来抛出异常 下面的伪代码应该可以说明我的需求 def function return missing var try print function e
  • 循环时,.iter() 与引用 (&) 有何不同?

    在玩 Rust 时 我发现你可以循环Vecs and HashMaps 可能还有其他 通过引用 而不是使用 iter let xs vec 1 2 3 4 5 for x in xs println x x The iter 函数似乎具有相
  • 如何在 Javascript 中的小数点后附加一个额外的“零”

    嘿 我是 JavaScript 新手 使用一个文本框验证十进制数字 示例格式应为 66 00 但是如果用户键入 66 0 并且不在逗号后键入两个零 则在离开文本框后 它应该自动附加到它 这样它就是正确的格式 我怎样才能得到这个 我怎样才能追
  • 为什么当设置为 TLS 选择器时,ES 和 DS 在 64 位内核上最终会归零?

    下面的 32 位程序调用set thread area 2 http linux die net man 2 set thread area在 GDT 中创建一个条目 该条目旨在用于 TLS 通常将结果选择器放入FS or GS并成功使用
  • 从 PHP 启动交互式 SSH bash 会话

    我正在使用 PHP 编写常见服务器管理任务的快捷方式 我正在使用deployer org 但这应该不重要 我想添加一个任务 用于在通过 SSH 连接到服务器后启动交互式 bash 提示符 例如 您将运行 dep ssh 其中 dep 是一个
  • 在 phpunit 中 __construct 与 setup 之间有什么区别?

    我很想知道在测试类 construct 中创建对象是一种很好的做法 或者我们应该始终使用 setup teardown 方法 或 setUpBeforeClass tearDown AfterClass 方法 我知道每个测试都会调用 set
  • 在 Web API 2 中返回字符串

    听起来很简单 我还没有找到任何关于这方面的文档 也许我的措辞是错误的 所以如果是这样 一些关于这方面的好的文档将不胜感激 我只想返回一个字符串或字符串类型的模型 return string here 我每次都会收到此错误 Severity
  • 可基于多列格式化

    我正在使用该包formattable生成格式化表格 我发现了一个不错的资源在 R 中设置表格格式 http www r bloggers com formatting table output in r 但这里的箭头格式示例仅基于特定列 我
  • Windows 从属设备上的 Jenkins Git SSH 密钥

    目前 我们在 Windows 上有一个 Jenkins 主服务器 一个 ubuntu 从服务器和一个 Windows 从服务器 我正在尝试在 Windows 从机上设置 git msysgit 已安装 并且我将该目录包含在系统路径变量中 以
  • C++ 中的全局对象

    在下面的C 代码中 s分配在哪里 它使用堆 数据 bss 还是某种组合 我使用的是 Linux x86 平台 以防产生影响 有没有办法让 g 编译器向我显示布局 include
  • 为什么使用枚举而不是静态布尔?

    为什么在模板元编程中使用 enum 而不是 static const bool 被认为是更好的做法 我在 Alexandrescu 的书中读到过这一点 但找不到它 但我真的很想知道它 关键原因是 static bool 毕竟是一个变量 而
  • 通过与 cytoscape.js 中特定节点的连接来过滤图表

    Cytoscape 的新手 我有一张图 其中包含主导主网络和一些与我要删除的主网络未连接的较小网络 浏览文档我看不到明显的解决方案 我猜测可能需要一种自定义方法来循环所有节点 检查它们与主集群中最中心节点的图形距离 如果该距离未定义 则删除
  • 在 MySQL 中向 BIGINT 列添加索引有帮助吗?

    我有一个包含数百万个条目的表 以及一个包含BIGINT 20 每行的唯一值 它们不是主键 但在某些操作过程中 有数千个SELECTs 在中使用此列WHERE条款 问 向该列添加索引是否有帮助当条目数量增长到数百万时 我知道它适用于文本值 但
  • 如何解读这些时间戳?

    我正在尝试解析一些 xml 文件中写入的时间戳 大多数时间时间戳是这样的2009 07 22 07 00但有时我发现它们就像2009 07 22Z or 2009 07 22z 请帮助我如何解释这些 Z 以及如何解析它们 我认为这些 z 或
  • 使用 Liquid 标记获取 Jekyll 中的今天日期

    我认为这 应该 很容易 但我无法使用 Liquid 标记在 Jekyll 页面中显示今天的日期 根据文档 https github com Shopify liquid wiki Liquid for Designers 我应该能够这样做来
  • PCRE 库版本太旧

    Bug Genie 3 需要 PCRE 库 8 0 或更高版本 你有 版本 7 8 2008 09 05 将您的系统更新到最新版本 你常用的来源 在我查看问题并尝试通过以下步骤更新我的 PCRE 库后 wget the latest sou
  • IE7 中列表项之间的 CSS 间隙

    我无法消除 IE7 中列表项之间的间隙 HTML ul li div row 1 1 div div row 1 2 div li ul
  • Silverlight:创建圆形按钮模板

    我决定尝试制作一个圆形按钮 因此使用表达式混合 我在 xaml 上放置了一个按钮控件 然后 我通过选择 编辑控制部件 模板 gt 编辑副本 来创建一个模板 我正在尝试设计它 使按钮的左侧和右侧始终是完美的半圆 这样无论按钮长得多高或多宽 角