[WPF学习笔记]动态加载XAML

好久没写Blogs了,现在在看【WPF编程宝典】,决定开始重新写博客,和大家一起分享技术。

在编程时我们常希望界面是动态的,可以随时变换而不需要重新编译自己的代码。

以下是动态加载XAML的一个事例代码。

在debug文件夹下新建一个文本文件,重命名为:file.xaml

插入界面代码:


<DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<Button Name="button1" Margin="30" Content="Pleas click me."></Button>

</DockPanel>

在VS新建LoadXAML.CS类。


public
class
LoadXAML :Window

{

private
Button button1;

?

public LoadXAML(string xamlFile)

{

Width = Height =
285;

Left = Top =
100;

Title =
"动态加载XAML";

?

DependencyObject rootElement;

using (FileStream fs=new
FileStream(xamlFile, FileMode.Open))

{

rootElement =(DependencyObject) XamlReader.Load(fs);

?

}

Content = rootElement;

//查找控件(方法一)

//button1 = (Button) LogicalTreeHelper.FindLogicalNode(rootElement, "button1");

?

//查找控件(方法二)

FrameworkElement frameworkElement = (FrameworkElement) rootElement;

button1 = (Button) frameworkElement.FindName("button1");

?

button1.Click += button1_Click;

}

?

void button1_Click(object sender, RoutedEventArgs e)

{

button1.Content =
"Thank you.";

}

?

修改App.xaml启动项


protected
override
void OnStartup(StartupEventArgs e)

{

var win =
new
LoadXAML("file.xaml");

win.Show();

}

时间: 2024-08-28 05:14:14

[WPF学习笔记]动态加载XAML的相关文章

Away3D 学习笔记(一): 加载3DS格式的模型文件

加载外部的3DS文件分为两种: 1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取 1 private function load3DSFile():Loader3D 2 { 3 loader = new Loader3D(); 4 loader.addEventListener(LoaderEvent.RESOURCE_COMPLETE,onLoadComplete); 5 loader.addEventListener(AssetEvent.ASSET_COMPLETE,onAsset

OGEngine学习笔记---资源加载

声音管理兼容各种音频文件格式,比特率和样本率 OGEngine开源引擎兼容各种音频视频文件格式,并且引用了硬件加速技术,来对音频文件进行io读取,简化了资源的加载和读取写入的过程,大幅度减少应用卡顿.无响应的状况出现. 一个背景音乐 多个音效 OGEngine开源引擎在同一时间只能播放一首背景音乐,但是能同时播放多个音效. 首先自定义一个枚举类ConfigData,用来存放背景音乐key和音效key. public class ConfigData { /** 背景音乐*/ public sta

WPF 仪表盘 刻度盘 动态 加载中 开源

原文:WPF 仪表盘 刻度盘 动态 加载中 开源 1. 表盘 参数可以设置, codeproject上写的.网址在这里. 源码里有demo,很详细. 源码在这里. 2. 动态Loading 截图效果跟实际有点不一样. 自己把源码写成 资源就好用了呗 地址在这里 3.  有两个类似的                              地址1  地址2 原文地址:https://www.cnblogs.com/lonelyxmas/p/9689224.html

JS学习之动态加载script和style样式

前提:我们可以把一个网页里面的内容理解为一个XML或者说网页本身也就是一个XML文档,XML文档都有很特殊的象征:"标签"也叫"节点".我们都知道一个基本的网页格式是 <!DOCTYPE /> <head></head> <body><body /> 这些是最基本的形态,但是其实它省略了最外面的一个标签<document>. <document> <!DOCTYPE />

WPF DataGrid下滑动态加载数据

效果如图: 重点是判断滑动到DataGrid底端(VerticalOffset等于ScrollableHeight),则继续加载数据 private void DataGrid_ScrollChanged(object sender, ScrollChangedEventArgs e) { var scrollViewer = e.OriginalSource as ScrollViewer; if (e.VerticalOffset!=0 && e.VerticalOffset == s

学习笔记TF015:加载图像、图像格式、图像操作、颜色

TensorFlow支持JPG.PNG图像格式,RGB.RGBA颜色空间.图像用与图像尺寸相同(height*width*chnanel)张量表示.通道表示为包含每个通道颜色数量标量秩1张量.图像所有像素存在磁盘文件,需要被加载到内存. 图像加载与二进制文件相同.图像需要解码.输入生成器(tf.train.string_input_producer)找到所需文件,加载到队列.tf.WholeFileReader加载完整图像文件到内存,WholeFileReader.read读取图像,tf.ima

ArcGIS API for JavaScript3.x 学习笔记[3] 加载底图(一)【天地图(经纬度版)】

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>天地图底图加载(经纬度版本)</title> 6 <link rel="stylesheet" href="https://js.arcgis.com/3.21/esri/css/esri.css"> 7 <script

Flixel学习笔记002 加载地图(一)

这篇的参考官方代码示例Cameras,代码在https://github.com/phmongeau/SplitScreen/tree/master/src. 首先用Windows的画图画了几个格,大小是20*20的. 然后参照官方代码示例,写了一段代码: 1 package org 2 { 3 import org.flixel.FlxState; 4 import org.flixel.FlxTilemap; 5 6 /** 7 * ... 8 * @author QuanJP [email

OPENCV学习笔记2_Mat 加载, 显示

1.1 Introduction to related functions    1.Imread() function Mat imread( const String& filename, int flags = IMREAD_COLOR ); filename:Name of file to be loaded flags:载入标识,指定一个加载图像的颜色类型(参考enum ImreadModes).自带缺省值1,如果在调用时忽略这个参数,就表示载入三通道的彩色图像. enum Imrea