【问题标题】:Creating a DIP Switch control in WPF在 WPF 中创建 DIP 开关控件
【发布时间】:2008-12-08 20:01:24
【问题描述】:

为了自学更多关于 WPF 的知识,我正在尝试构建一个简单的应用程序。在我工作的地方,我们有一些硬件有一组 8 个 DIP 开关,用于设置从 0 到 255 的地址(作为 8 位数字)。这是一个简单的概念,我想将它构建到一个 WPF Windows 应用程序中,它允许用户查看给定地址的 DIP 开关设置。我在 WinForms 中构建了一个类似的应用程序,它可以简单地显示/隐藏 DIP 开关的图片。我想将它移植到 WPF 并做一些更优雅的事情。

我对字符串和数字进行了一些简单的数据绑定,使它们显示在标签中,我还对用户控件进行了一些介绍性工作。

我想做的是创建一个模拟单个 DIP 开关的用户控件,该控件将具有一个布尔值 true 或 false 的“State”属性。然后我可以将其中的 8 个放在我的窗口中并将它们绑定到我的代码。

在 XAML 中,我将绘制 DIP 开关,滑动部分将根据 State 属性的真/假值移动到打开或关闭位置。一旦我弄清楚了,也许我可以稍后制作动画。

此时我正在寻找概念性概述...如何在用户控件中创建此属性,并使其值影响图形开关的位置?

谢谢。

【问题讨论】:

    标签: wpf xaml user-controls properties


    【解决方案1】:

    您可以通过替换 CheckBox 的模板轻松创建 DIP 开关控件,如果您想知道如何创建自己的模板化控件,请阅读 Charles Petzold 的“Templates for Uncommon Controls”http://msdn.microsoft.com/en-us/magazine/cc135986.aspx

    【讨论】:

      【解决方案2】:

      您可以这样做的一种方法是使用控件模板来自定义 WPF RadioButton 类的外观。 RadioButton 控件模板的代码是available on msdn

      您应该能够创建自己的 UserControl,然后将此代码粘贴到 UserControl.Resources 节点中,然后开始修改 RadioButton 的外观和感觉,同时保留其所有属性,这应该使它易于用作一个布尔指标。

      “子弹”的样式可以很容易地被翻转或未翻转的 DIP 开关的图像或矢量图形替换。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 2012-05-25
        • 2011-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多