可换肤控件 (WPF/UWP)

Skinnable Controls (WPF/UWP)

我正在构建一个虚拟仪器。控件必须看起来漂亮,而且它们必须看起来像其他虚拟仪器。这是他们需要看起来像的示例:

http://www.vstskins.com/

基本上就是旋钮、推子、开关等等

标准的 Telerik、Infragistics 控件等不符合要求。我需要控件来接受要放置在顶部的位图图像 - 不是用 Xaml 样式设计的。我说的是实际皮肤,而不是主题。

有没有我可以使用的控件?

PS:此时我不确定我是否会选择 WPF 或 UWP,但获得良好的控件将对我的平台决策产生重大影响。

首先,关于 WPF 与 UWP,应该根据您对应用程序使用场景的预期来决定:您要将应用程序发布到 windows 商店吗?您需要跨多种设备工作吗?或者您只想开发桌面应用程序? UWP 和 WPF 都有丰富的 UI 元素库。大家可以根据自己的关心来选择。 UI 聪明的你在技术上可以做同样的事情。

这里我重点介绍UWP中的解决方案。我对您的要求的理解是您需要在代码隐藏中将控件的背景更改为不同的图像。如果我误解了,请纠正我。设置图片源有多种方式:使用相对URI,使用网络或本地存储的文件,使用流源等。请参考MSDN online help。下面是一个非常简单的示例:

In XAML:

<StackPanel>
    <Ellipse  Height="200" Width="300">
        <Ellipse.Fill> 
            <ImageBrush x:Name="test" ImageSource="Assets/image1.jpg"  />
        </Ellipse.Fill>
    </Ellipse>
    <Button Click="Button_Click">Change Background</Button>
</StackPanel>   

In C#:
private void Button_Click(object sender, RoutedEventArgs e)
{
   Uri uri = new Uri("ms-appx:///Assets/hero.jpg");
   test.ImageSource = new BitmapImage(uri);
}

最后,我委托某人构建了我需要的控件。他们运作良好:

https://bitbucket.org/MelbourneDeveloper/vst-controls-.net

有一个开关、旋钮和推子,并且都可以使用光栅图像进行换肤。

这不是开源库,但欢迎所有人将控件用于非商业性质的个人项目。