中如何得到任何对象的的
在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”。
再想想看,这样的功能对我们有什么用途?多想多练,举一返三多得正果。
查看本文来源
成都睾丸炎治疗多少钱拉萨治疗白癜风医院哪好
济南治疗白癜风多少钱
- 04-06[军事]很多学生姓“袁”,老师上课不敢叫她的全名,因为一叫全班哄堂大笑
- 04-01[军事]到底最火发型100款,想清爽利落,赶快挑一款吧
- 03-20[军事]从“狗玩的”到“人玩的”:飞盘在年轻人当中爆火,却离商业化很远
- 03-13[军事]芜湖高中招生作法来了!
- 03-02[军事]上外女生图书馆自习,咖啡杯内被投放异物,校方的否认叫网友不满
- 02-29[军事]邮储银行济宁市分行实行员工分类差异化管理者, 持续开展案防“月月考”工作
- 02-22[军事]老外在国外吃“螺蛳粉”,看到成品后一脸无奈,“意念”都没了
- 02-21[军事]曾经全球第一的诺基亚,连叫作都丢了!
- 02-19[军事]39岁玄彬结婚后更有男人味!新整片穿衬衫秀肌肉,有抬头纹都帅气
- 02-09[军事]2022年高考本科没录取,专科不顾一切,选韩国留学申请本科名校
- 01-29[军事]高于5000万元!四川省制造业企业“制惠贷”等你申报
- 01-25[军事]张泰中从艺卅五周年竹刻作品展在苏州园林博物馆启用
- 01-23[军事]陕建产投集团召开企业发展一段距离研讨座谈会