【问题标题】:Skinnable Controls (WPF/UWP)可换肤控件 (WPF/UWP)
【发布时间】:2015-11-16 05:26:23
【问题描述】:

我正在构建一个虚拟乐器。控件必须看起来不错,并且它们必须看起来像其他虚拟乐器。以下是他们需要的外观示例:

http://www.vstskins.com/

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

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

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

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

【问题讨论】:

    标签: wpf controls uwp skinning


    【解决方案1】:

    首先,关于WPF vs UWP,应该根据您对应用程序使用场景的期望来决定:您想将您的应用程序发布到windows store吗?您是否需要跨多种设备工作?或者您只是想开发一个桌面应用程序? 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);
    }
    

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-10
        • 1970-01-01
        • 2015-11-16
        • 1970-01-01
        • 2016-05-27
        • 2019-02-18
        • 2018-10-22
        • 2011-08-23
        相关资源
        最近更新 更多