如何用WPF实现 易语言小程序——强制性选择:你喜不喜欢我

如何用WPF实现 易语言小程序——强制性选择:你喜不喜欢我,第1张

可以用 canvas布局 设置按钮的top 和 left

Canvas.SetTop(按钮,位置)

可以用Grid 布局 按钮设置 左对齐 和顶对齐 然后通过Margin设置按钮位置

Caliburn.Micro(以下简称CM) 根据它的官网(https://caliburnmicro.com/)介绍,是一个简洁的轻量级的MVVM开源框架,它是一套协助开发WPF、Silverlight、Windows RT等应用程序的库。

接上一个文章,讲我们wpf程序改成MVVM框架,为了便于查看,增加两个文件夹分别用于存放View,ViewModel,同事删除默认启动文件MainWindow.xaml

可通过CM官网文档进行改造启动文档或者直接参考github(https://github.com/Caliburn-Micro)下面的sample

Boostrapper继承BootstrapperBase,通过container请求ViewModel启动View,如下

之前删除MianWindow同时要删除之前的启动方式StartupUri

引用本地的bootstrapper

<ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary>

                    <local:Bootstrapper x:Key="Bootstrapper" />

                </ResourceDictionary>

            </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>

正常显示

需要继承Screen,Screen就是用来表示UI部件的,可以通过GetView可以获得对应的View对象。因为Screen实现了很多功能,所以个人建议所有ViewModel都继承自Screen

新增一个文本显示

CM View TextBlock可以通过Name属性与ViewModel ShowHello进行绑定

构造方法中给ShowHello赋值,运行时显示在View中,最终显示如下

简单的CM框架的小程序就完成了

有空的话就帮你写了,我以前做过在wpf中使用winform中的控件,其间也看到了在winform中使用wpf控件的文章,不过费点劲。不知道你是不是这个意思。

如果你说的windows窗口也是wpf写的话那用delegate和event就可以把任何你想要的东西以参数形式回传给父窗体,父窗体在new完了注册事件就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8152909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存