首页 >> 军事

中如何得到任何对象的的

上一章← 章节目录 →下一章2021.10.29

在WPF中,可以使用ve(objName)得到任何Object对象的XAML代码。  这里举个例子,然后来比较一下:

XAML代码:

以下是引用片段:

//ml

Windowx:Class=\"ndow1\"

xmlns=\"\"

xmlns:x=\"\"

Title=\"XamlWriter\"Height=\"421\"Width=\"485\"

GridName=\"Grid1\"

ButtonHeight=\"23\"Margin=\"9,13,0,0\"Name=\"buttonA\"VerticalAlignment=\"Top\"Click=\"WriteXaml_A\"HorizontalAlignment=\"Left\"Width=\"92\"WriteMyXaml_1/Button

ButtonHeight=\"23\"Margin=\"119,14,0,0\"Name=\"buttonB\"VerticalAlignment=\"Top\"Click=\"WriteXaml_B\"HorizontalAlignment=\"Left\"Width=\"96\"WriteMyXaml_2/Button

ButtonHeight=\"24\"Margin=\"228,15,141,0\"VerticalAlignment=\"Top\"Name=\"buttonC\"Click=\"WriteGridXaml\"WriteGridXaml/Button

ButtonHeight=\"23\"HorizontalAlignment=\"Right\"Margin=\"0,15,11,0\"VerticalAlignment=\"Top\"Width=\"115\"Click=\"WriteCSharpCode\"WriteCodeButton/Button

TextBoxMargin=\"9,50,10,1\"Name=\"textBox1\"TextWrapping=\"Wrap\"/TextBox

/Grid

/Window

C#代码:

以下是引用片段:

//

usingSystem;

neric;

xt;

ndows;

ntrols;

ta;

cuments;

put;

dia;

aging;

apes;

namespaceXamlWriter

{

///

///ml

///

publicpartialclassWindow1:ndow

{

publicWindow1()

{

InitializeComponent();

}

privatevoidWriteXaml_A(objectsender,RoutedEventArgse)

{

stringsavedButton=ve(ttonA);

xt=savedButton;

}

privatevoidWriteXaml_B(objectsender,RoutedEventArgse)

{

stringsavedButton=ve(ttonB);

xt=savedButton;

}

privatevoidWriteGridXaml(objectsender,RoutedEventArgse)

{

stringsavedButton=ve(id1);

xt=savedButton;

}

MACD指标双线金叉收敛 privatevoidWriteCSharpCode(objectsender,RoutedEventArgse)

{

ButtonorigianlButton=newButton();

ight=50;

dth=100;

ckground=iceBlue;

ntent=\"ClickMe\";

stringsavedButton=ve(origianlButton);

xt=savedButton;

}

}

}

运行程序,当点击WriteGridXaml按钮后,我们可以看到如下结果:

为了更清晰,我将上面结果都COPY成文字,为了方便阅读,我做了适当整理(加了换行):

以下是引用片段:

GridName=\"Grid1\"xmlns=\"\"

ButtonHeight=\"23\"Margin=\"9,13,0,0\"Width=\"92\"HorizontalAlignment=\"Left\"Name=\"buttonA\"VerticalAlignment=\"Top\"WriteMyXaml_1/Button

ButtonHeight=\"23\"Margin=\"119,14,0,0\"Width=\"96\"HorizontalAlignment=\"Left\"Name=\"buttonB\"VerticalAlignment=\"Top\"WriteMyXaml_2/Button

ButtonHeight=\"24\"Margin=\"228,15,141,0\"Name=\"buttonC\"VerticalAlignment=\"Top\"WriteGridXaml/Button

ButtonHeight=\"23\"Margin=\"0,15,11,0\"Width=\"115\"HorizontalAlignment=\"Right\"VerticalAlignment=\"Top\"WriteCodeButton/Button

TextBoxTextWrapping=\"Wrap\"Margin=\"9,50,10,1\"Name=\"textBox1\"AcceptsReturn=\"True\"lt;ButtonHeight=\"23\"Margin=\"119,14,0,0\"Width=\"96\"HorizontalAlignment=\"Left\"Name=\"buttonB\"VerticalAlignment=\"Top\"xmlns=\"\"gt;WriteMyXaml_2lt;/Buttongt;/TextBox

/Grid

我们来对比一下最原始的XAML代码与我们得到的XAML代码,为了简洁,只选第一个名为“buttonA”的按钮。

原始的XAML代码(从ml中节选):

以下是引用片段:

ButtonHeight=\"23\"Margin=\"9,13,0,0\"Name=\"buttonA\"VerticalAlignment=\"Top\"Click=\"WriteXaml_A\"HorizontalAlignment=\"Left\"Width=\"92\"WriteMyXaml_1/Button

使用ve()得到的XAML代码:

以下是引用片段:

ButtonHeight=\"23\"Margin=\"9,13,0,0\"Width=\"92\"HorizontalAlignment=\"Left\"Name=\"buttonA\"VerticalAlignment=\"Top\"WriteMyXaml_1/Button

请注意比较,有何不同?是不是Button的属性排列次序有变?而且,Click=\"WriteXaml_A\" 这样的代码没有了?

其他的我也不多说了,想想看为什么?

运行WriteCSharpCode(object sender, RoutedEventArgs e)后会得到些什么呢?以下是结果:

以下是引用片段:

ButtonHeight=\"50\"Width=\"100\"Background=\"#FFF0F8FF\"xmlns=\"\"ClickMe/Button

而其C#是:

以下是引用片段:

ButtonorigianlButton=newButton();

ight=50;

dth=100;

ckground=iceBlue;

ntent=\"ClickMe\";

这就是C# 代码与XAML代码的相互转换了。提示:留意Background属性那句,将iceBlue转换成了“#FFF0F8FF”。

再想想看,这样的功能对我们有什么用途?多想多练,举一返三多得正果。

查看本文来源

成都睾丸炎治疗多少钱
拉萨治疗白癜风医院哪好
济南治疗白癜风多少钱
上一章← 章节目录 →下一章
友情链接