精华内容
下载资源
问答
  • 2012-11-27 21:45:00

    Xwt是为Mono和.NET创建的基于.NET框架的跨平台开源UI工具包,它使用通用的API,构建于所支持的每种平台的原生Widget工具包之上。它主要用来创建基于同一个代码库的跨平台桌面应用程序。使用Xwt创建的应用程序在相应平台上具有本地化的视觉效果。
    Xwt既可单独使用来创建完整的应用程序,也可嵌入到现有系统中。这让开发者能够使用原生组件开发应用的核心部分,并利用Xwt创建特定模块,例如对话框,消息框等。
    最新版的Xwt包含下列特性

    • 支持GTKCocoa(Mac)和WPF(Windows)
    • 能够在同一应用程序中使用多个后端
    • Widget库
    • 绘图API
    • 可扩展
    • 可插入新的后端
    • 可扩展现有后端
    • 将用户界面嵌入到原生UI

    XWT工具包包括了WindowsMacOS XLinux等平台相关的类库。要生成所需要的库,请用Visual Studio 2012或者MonoDevelop打开Xwt.sln,然后构建这个解决方案。例如,在Windows下构建WPF应用程序需要用到Xwt.dll和Xwt.WPF.dll。
    要为应用程序创建内容,需要用到Widget。XWT还一同发布了大量Widget,它们均继承了抽象基类Xwt.Widget。

    查看英文原文:Build Cross Platform Applications with Xwt

    转载于:https://www.cnblogs.com/shanyou/archive/2012/11/27/2791519.html

    更多相关内容
  • 本文告诉大家如何入门开始开发一个基于 mono 组织开源的 XWT 跨平台客户端 UI 框架的应用,本文的 xwt 是在 GitHub 上完全开源的,基于 MIT 协议的,底层采用 GTK# 的 UI 框架

    本文告诉大家如何入门开始开发一个基于 mono 组织开源的 XWT 跨平台客户端 UI 框架的应用,本文的 xwt 是在 GitHub 上完全开源的,基于 MIT 协议的,底层采用 GTK# 的 UI 框架

    此 xwt 在设计上是通过 mono 进行跨平台运行的,而非采用 dotnet core 方式进行跨平台运行的,因此暂时只能使用 dotnet framework 4.7.2 版本,而不支持 dotnet core 版本。至少在 2021.08.09 依然是不支持在 dotnet core 运行

    在开始之前,将会因为 xwt 依赖 GTK# 的环境而需要先部署 GTK# 的开发环境

    官网 下载 GTK# 的 x86 安装包或 mono x86 的应用

    安装到默认路径,也就是在 C:\Program Files (x86)\GtkSharp\2.12\bin 路径,默认安装的时候会加入到环境变量。详细请参阅 Xamarin 使用 GTK 提示找不到 libglib-2.0-0.dll 找不到

    接着打开 VisualStudio 完成 .NET Framework 4.7.2 和 dotnet core 负载(为了mono的默认安装)的安装,以及桌面开发 (xwt 可以基于 wpf 版本)的安装

    以上就是所有的环境部署步骤,对于大部分开发者,只需要去下载 GtkSharp 安装即可。我依然推荐安装到默认路径,无论是 GtkSharp 还是 VisualStudio 都放在默认路径

    新建一个 dotnet core 控制台项目

    修改 csproj 项目文件,替换为如下代码

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>net472;netcoreapp3.1</TargetFrameworks>
        <PlatformTarget>x86</PlatformTarget>
      </PropertyGroup>
    
      <ItemGroup>
        <None Include="C:\Program Files %28x86%29\GtkSharp\2.12\bin\*.dll" Link="%(FileName).dll">
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
      </ItemGroup>
    
      <ItemGroup>
        <PackageReference Include="Xwt.Gtk" Version="0.2.247" />
      </ItemGroup>
    
    </Project>

    以上代码就是设置框架是 .NET Framework 4.7.2 和 dotnet core 3.1 两个版本,当然当前是不能跑 dotnet core 3.1 的版本的。接着因为 GTK# 当前只支持客户端的 x86 版本,因此需要设置 PlatformTarget 作为 x86 版本

    默认是不会去找到 GTK Sharp 的 DLL 内容的,因此通过如下代码引用所有的 DLL 用来输出

      <ItemGroup>
        <None Include="C:\Program Files %28x86%29\GtkSharp\2.12\bin\*.dll" Link="%(FileName).dll">
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
      </ItemGroup>

    打开 Program.cs 文件,添加如 xwt 官方开源仓库 https://github.com/mono/xwt 的例子

            [STAThread]
            static void Main(string[] args)
            {
                Application.Initialize(ToolkitType.Gtk);
    
                var mainWindow = new Window()
                {
                    Title = "Xwt Demo Application",
                    Width = 500,
                    Height = 400
                };
                mainWindow.Show();
                Application.Run();
            }

    选择 .NET Framework 4.7.2 版本,尝试运行一下应用。默认即可看到显示了窗口

    本文所有代码在 githubgitee 上完全开源

    不嫌弃麻烦的话,还请自行下载代码,自己构建。可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码

    git init
    git remote add origin https://gitee.com/lindexi/lindexi_gd.git
    git pull origin 11125ca50dc91e50cf581c36476f03b853bc7ef8
    

    以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源

    git remote remove origin
    git remote add origin https://github.com/lindexi/lindexi_gd.git
    

    获取代码之后,进入 LarwearceceyokuDokealuwo 文件夹

    我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

    如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

    如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • WPF动态换肤的实现方法

    千次阅读 2018-11-26 16:36:05
    1、在项目根目录下创建一个存放皮肤资源的文件夹 “Themes” 2、往Themes文件夹中添加资源字典 ... ...https://download.csdn.net/download/xwt0511/10808356

    1、在项目根目录下创建一个存放皮肤资源的文件夹 “Themes”

    2、往Themes文件夹中添加资源字典

    内容如:

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                        xmlns:local="clr-namespace:ThemeTest.Themes">
        <LinearGradientBrush x:Key="TitleBackground" StartPoint="0,0" EndPoint="0,1">
            <GradientStop Offset="0" Color="#337BCC"></GradientStop>
            <GradientStop Offset="1" Color="#003F9B"></GradientStop>
        </LinearGradientBrush>
        <SolidColorBrush x:Key="TitleForeground" Color="#ffffff"></SolidColorBrush>
    </ResourceDictionary>

    如图,我添加了3个资源字典文件,分别定义了深蓝,浅蓝,橙色三种皮肤的一些画笔

    3、修改app.xaml文件如下

    <Application x:Class="ThemeTest.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:local="clr-namespace:ThemeTest"
                 StartupUri="MainWindow.xaml">
        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="Themes/Theme_DarkBlue.xaml"></ResourceDictionary>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>
    </Application>

    这里是加载了深蓝为默认皮肤

    4、界面调用对应皮肤的方法

    <Grid Background="{DynamicResource TitleBackground}">

    如上,需要使用{DynamicResource TitleBackground}这样的方式来调用动态资源

    5、动态更换皮肤的方法

    ResourceDictionary mResourceSkin = new ResourceDictionary() { Source = new Uri("/Themes/Theme_" + themeName + ".xaml", UriKind.RelativeOrAbsolute) };
    Application.Current.Resources.MergedDictionaries[0] = mResourceSkin;

    最终效果如下:

    源码下载 https://download.csdn.net/download/xwt0511/10808356

    展开全文
  • Spritefont编辑器 Spritefont Editor是Xna“ .... 如果您使用的是Gtk或Wpf,则可以将Xwt添加为引用,然后像这样将小部件转换为本地工具箱(将Gtk替换为您选择的工具箱): var sf_widget = new SFEditor . SFWidget ()
  • XWT – Animation 支持

    2011-07-14 14:56:00
    XWT内置了Trident作为动画引擎。 Trident 是一个由 Substance look-and-feel 编写的在应用中驱动动画的动画层的新一代解决方案。底层的动画引擎已经开发和生产应用超过两年了,但是UI API非常难以使用。Trident 的...

        XWT内置了Trident作为动画引擎。

       Trident 是一个由 Substance look-and-feel 编写的在应用中驱动动画的动画层的新一代解决方案。底层的动画引擎已经开发和生产应用超过两年了,但是UI API非常难以使用。Trident 的主要目标是保留原项目的强大的功能,性能和现存动画引擎的表现力,同时提供一套简单的API用于使用。 Trident实现原理很像Flash,提供了时间轴(Timeline)概念,

       在XWT中很容易使用Trident,目前提供了一下几种属性动画(Property Anmimation)

    对应的类属性组件
    ColorAnimationbackground,foreground Control
    IntAnmiation alpha Shell
    PointAnimation location Control
    SizeAnmiation size Control
    RectangleAnimation bounds Control

     

    ColorAnmiation

    支持颜色的动态变化,用法:

    <ColorAnimation targetName="labelTarget" targetProperty="background" duration="0:0:8" from="red" to="blue" />

    通过targetName指定目标组件的名称,targetProperty指定目标组件的属性,duration指定持续时间(时:分:秒),from指起始颜色,to目标颜色,通过RGB值变换达到效果。

    完整的例子:

    <Composite xmlns="http://www.eclipse.org/xwt/presentation"
    xmlns:x="http://www.eclipse.org/xwt">
    <Composite.layout>
    <GridLayout numColumns="1"/>
    </Composite.layout>
    <Label name="labelTarget" text="Move mouse in button to see the animation"/>
    <Button name="startButton" text="Start"/>
    <Composite.triggers>
    <!-- Begin the Storyboard -->
    <EventTrigger routedEvent="SelectionEvent" sourceName="startButton">
    <BeginStoryboard name="MyBeginStoryboard">
    <Storyboard>
    <ColorAnimation
    targetName="labelTarget"
    targetProperty="background"
    duration="0:0:8" from="red" to="blue" />
    </Storyboard>
    </BeginStoryboard>
    </EventTrigger>
    </Composite.triggers>
    </Composite>

    这里是通过XWT触发器完成颜色变换的,触发器调用BeginStoryboard,然后将动画任务属性传达给目标组件和属性。这和WPF的设计思想是一脉相承的。

    image_thumb

    点击start按钮后,标签的背景色会由red变成blue。

    你也可以扩展这个程序,加上停止、暂停和恢复功能。

    往.xwt文件拖入几个按钮,然后添加触发器

    <Composite.triggers>
    <!-- Begin the Storyboard -->
    <EventTrigger routedEvent="SelectionEvent" sourceName="startButton">
    <BeginStoryboard name="MyBeginStoryboard">
    <Storyboard>
    <ColorAnimation
    targetName="labelTarget"
    targetProperty="background"
    duration="0:0:8" from="red" to="blue" />
    </Storyboard>
    </BeginStoryboard>
    </EventTrigger>
    <--新增加代码 start>
    <EventTrigger routedEvent="SelectionEvent" sourceName="stopButton">
    <StopStoryboard BeginStoryboardName="MyBeginStoryboard" />
    </EventTrigger>
    <EventTrigger routedEvent="SelectionEvent" sourceName="pauseButton">
    <PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />
    </EventTrigger>
    <EventTrigger routedEvent="SelectionEvent" sourceName="resumeButton">
    <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />
    </EventTrigger>
    <--新增加代码 end>
    </Composite.triggers>

    image_thumb[1]

     

    IntAnimation

    可以用于窗口的透明度变换,从完全透明到不透明。

    <IntAnimation
    targetName="window"
    targetProperty="alpha"
    duration="0:0:3" from="0" to="255" />

    PointAnimation

    支持组件大小的变化,用法和ColorAnmiation差不多的:

    <PointAnimation
    targetName="window"
    targetProperty="size"
    duration="0:0:6" from="150, 150" to="600, 600" />

     

    SizeAnmiation

      与PointAnmiation类似

     

    RectangleAnmiation

       改变窗口的坐标和大小

    <RectangleAnimation
    targetName="window"
    targetProperty="bounds"
    duration="0:0:1" from="10, 10, 150, 150" to="300, 300, 600, 600" />

     

      你可以可以将多种动画效果一起使用:一边改变大小,一边更改坐标。

    <Storyboard>
    <PointAnimation
    targetName="window"
    targetProperty="size"
    duration="0:0:1" from="150, 150" to="600, 600" />
    <PointAnimation
    targetName="window"
    targetProperty="location"
    duration="0:0:3" from="10, 10" to="600, 600" />
    </Storyboard>

     

        XWT的动画设置和WPF步骤非常相似。

     

        以上这就是XWT支持的最基本动画效果,虽然功能不是非常强大,但是用起来也不怎么复杂,感兴趣可以研究一下。

     

    参考资料:System.Windows.Media.Animation Namespace

    转载于:https://www.cnblogs.com/vwpolo/archive/2011/07/14/2106368.html

    展开全文
  • OxyPlotWinform.rar

    2020-03-20 14:55:36
    Oxyplot是一个.NET跨平台的绘图组件,适用于WPF, Windows 8, Windows Phone, Windows Phone Silverlight, Windows Forms, Silverlight, GTK#, Xwt, Xamarin.iOS, Xamarin.Android, Xamarin.Forms and Xamarin.Mac....
  • 转载于infoq,可以用来创建运行于windows,linux,mac os的桌面UI。 很奇怪的搭配,GTK+本身就是跨平台的,效果也不错,参见Gnome、vmware、gedit的...mono还不能搞定WPF,为了满足mono的跨平台UI,组合的不伦不类。
  • XWT是Eclipse 组织推出的一种新的界面编程语言。    按照传统的Java UI开发技术,比如使用SWT或者Swing开发界面,往往对UI开发人员的技术水平要求较高,前台界面代码和业务逻辑处理代码结合的比较紧密,不能进行...
  • 使用OxyPlot绘制曲线

    2022-03-30 13:33:55
    OxyPlot 获得 MIT 许可,并具有用于大量现代平台(WinForms、WPF、UWP、Xamarin、XWT)和一些旧平台(Silveright)的组件和 Windows 系统)。WinForms 控件 (PlotView.cs) 使用 System.Drawing 进行渲染,但也存在...
  • 378600001.jpg", "http://img.alicdn.com/imgextra/i3/378600001/O1CN01QTfBTu1BsV9XWt2K0_!!378600001.jpg", "http://img.alicdn.com/imgextra/i2/378600001/O1CN01n4dtTn1BsV9VVmFvW_!!378600001.jpg", ...
  • DotNet 资源大全中文版(Awesome最新版)
  • 伯乐在线已在 GitHub 上发起「DotNet 资源大全中文版」的整理。欢迎扩散、欢迎加入。 ... (注:下面用 [$]标注的表示收费工具,但部分收费工具针对开源软件的开发/部署/托管是免费的) API ...
  • ASP.NET资源大全

    2020-12-24 18:38:00
    XWT:跨平台 UI 工具箱,用于创建 .NET 和 Mono 桌面应用程序。 Gtk#:Gtk# 是 Gtk+ GUI 工具箱的 Mono/.NET 版本,绝大多数 Mono 中的 GUI 应用都基于它构建。 MaterialDesignInXamlToolkit:用于创建 Material ...
  • All .NET Platform (WinForm, WPF, ASP.NET, Silverlight, Windows Phone) Commercial UI, Skins, Reportings, Charts, Controls, more..... ComponentSource - http://www.componentsource.com  - ...
  • 将图片转化为.py文件

    万次阅读 2021-04-18 21:08:40
    图片 转换代码 import base64 def pic2py(picture_name): """ 将图像文件转换为py文件 :param picture_name: :return: ... open_pic = open("%s" % picture_name, 'rb') ... # 注意这边b64st
  • .Net开源框架列表

    2020-01-08 09:59:06
    API 框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono ...官网 ...官网 ServiceStack:架构缜密、速度飞快、令人愉悦的 web 服务。官网 Nelibur:Nelibur 是一个使...
  • Oxyplot是一个.NET跨平台的绘图组件,适用于WPF, Windows 8, Windows Phone, Windows Phone Silverlight, Windows Forms, Silverlight, GTK#, Xwt, Xamarin.iOS, Xamarin.Android, Xamarin.Forms and Xamarin.Mac....
  • DotNet 资源大全(转)

    2019-10-04 23:30:42
    awesome-dotnet是由 quozd 发起和维护。内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。 ... (注:下面用 [$]标注的表示收费工具,但部分收费工具针对开源软件的开发/...
  • 转自:http://www.cnblogs.com/Agui520/p/9396463.html ASP.NET资源大全-知识分享 API 框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。...
  • Awesome .NET

    2019-10-07 08:54:38
    Awesome .NET! A collection of awesome .NET libraries, tools, frameworks, and software. Inspired by awesome-ruby, awesome-php, awesome-python, frontend-dev-bookmarks and ruby-bookmarks. Contrib...
  • 1、TabControl ------ Alignment控制横竖外形tab 2、Panel 是正常的panel 3、splitContainer 就是切割为二的Panel,可以更换横竖结构外形,...Oxyplot是一个.NET跨平台的绘图组件,适用于WPF, Windows 8, Windows P
  • Java内存区域

    2020-05-27 21:41:26
    G2ldddSmUMzMcZghZYV01npVP8gSNF9FKZPElm+byuOXGvuk74wPAFNdRQiZ2fde gOVg/t8N4...xWT9ReFHgoFg7n9EdBta0mmWnhNFk7P0Vii5Av8RCw7pAI4Oo nkVbf1T+5sKxvLUFAf5RMisTfHIUVrGUCmqi5qmoq43Zh1nU4125h2XpJBcF6MKe y9Bqn/dsy10...
  • .net 框架

    2019-10-04 02:23:05
    目录 API 应用框架(Application Frameworks) 应用模板(Application Templates) 人工智能(Artificial Intelligence) ...程序集处理(Assembly Manipulation) ...认证和授权(Authentication and Authorization...
  • Awesome .NET! API NancyFx - Lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono ASP.NET WebAPI - Framew...
  • DotNet 资源大全

    2019-07-26 23:19:04
    awesome-dotnet是由 quozd 发起和维护。内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。 ... (注:下面用 [$]标注的表示收费工具,但部分收费工具针对开源软件的开发/...
  • ...
  • $arr = array(); $str = "abcdefghijklmnopqrstuvwxyz"; for ($i =0; $i < strlen($str); $i ++) { for ($j =0; $j < strlen($str); $j ++) { ... array_push($arr,$str[$i].$str[$j].$str[$k]);... .
  • Prism:微软开发的针对WPF和Silverlight的MVVM框架,通过功能模块化的思想,来讲复杂的业务功能和UI耦合性进行分离。 WPFToolkit 和 Fluent Ribbon Control Suite:开发类似于Office风格的Ribbon菜单。 测试和...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 129
精华内容 51
关键字:

wpf xwt