杭州人防质监站网址,上海红酒网站建设,商务网站建设评估的指标,wordpress文章文字连接其实#xff0c;在wpf中#xff0c;最核心的就是xaml#xff0c;因为只有xaml#xff0c;才能体现出用的是wpf#xff0c;而不是普通的cs文件#xff0c;cs文件在winform中等等程序都可以使用的#xff0c;唯独xaml才是wpf中最重要的#xff0c;最精华的东西#xff0… 其实在wpf中最核心的就是xaml因为只有xaml才能体现出用的是wpf而不是普通的cs文件cs文件在winform中等等程序都可以使用的唯独xaml才是wpf中最重要的最精华的东西但是xaml说深也深说浅也浅很多人都是用winform的做法去开发wpf从效果上看没有任何区别的。 今天说一下wpf中的资源其实也属于xaml中的内容万物皆资源。在资源中我们可以插入UC控件以及ViewModel。
1.首先创建一个wpf程序 2. 把UC控件当做资源来使用
2.1首先创建一个UC界面 2.2在App.xaml中把它当做资源
Application x:ClassWpfApp2.Appxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:localclr-namespace:WpfApp2StartupUriMainWindow.xamlApplication.ResourcesResourceDictionarylocal:UserControl1 x:KeyucTest/ResourceDictionary.MergedDictionaries/ResourceDictionary.MergedDictionaries/ResourceDictionary/Application.Resources
/Application2.3在主界面直接调用
Window x:ClassWpfApp2.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfApp2mc:IgnorabledTitleMainWindow Height450 Width800GridContentControl Content{StaticResource ucTest} //Grid
/Window2.4 效果 此时其实就是把UC控件充当了引用界面的方式效果一毛一样。 3.把ViewModel当做资源来使用
3.1接着上面的代码继续我们采用简单的MVVM模式
建立MainViewModel
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;namespace WpfApp2
{public class MainViewModel : BindingBase{public MainViewModel(){}private string name 故里2130;public string Name{get { return name; }set{name value; OnPropertyChanged();//OnPropertyChanged(nameof(name),使用特性去掉括号的值}}}public class BindingBase : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;//protected virtual void OnPropertyChanged(string propertyName)protected virtual void OnPropertyChanged([CallerMemberName] string propertyName )//此处使用特性{PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}
}3.2在App.xaml中把它当做资源
Application x:ClassWpfApp2.Appxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:localclr-namespace:WpfApp2StartupUriMainWindow.xamlApplication.ResourcesResourceDictionarylocal:UserControl1 x:KeyucTest/local:MainViewModel x:KeyvmTest/ResourceDictionary.MergedDictionaries/ResourceDictionary.MergedDictionaries/ResourceDictionary/Application.Resources
/Application3.3然后在界面中调用
Window x:ClassWpfApp2.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfApp2mc:IgnorabledDataContext{StaticResource vmTest}TitleMainWindow Height450 Width800StackPanelTextBlock Text{Binding Name}/ContentControl Content{StaticResource ucTest} //StackPanel
/Window3.4效果 然后可以直接绑定属性的值非常的方便不得不说这个功能很nice。 源码
https://download.csdn.net/download/u012563853/88623422
来源
巧妙的使用WPF中的资源-CSDN博客