2011-03-20 112 views
5

我正在准备考试和学习问题。然而,我有一个问题,在我看来,答案是错误的。这里就是正确答案是d问题:证书和问题的正确答案

您使用的Microsoft .NET Framework 4 创建的Windows Presentation 基金会(WPF)应用程序。 应用程序有一个名为 的窗口,该窗口具有名为sp的StackPanel 控件作为根元素。 您想要创建一个Button控件 ,其中包含一个TextBlock控件,其中包含 “保存”文本属性。您需要动态创建控件并将 控件添加到sp。

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
btn.Content = text; 
sp.DataContext = btn; 

B::你应该在 构造MainWindow类

一个写哪段代码

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
btn.Content = text; 
sp.Children.Add(btn); 

C:

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
sp.Children.Add(btn); 
sp.Children.Add(text); 

d:

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
btn.ContentTemplateSelector.SelectTemplate(text, null); 
sp.Children.Add(btn); 

在我看来,正确答案是B?你有任何sugesstions?

+0

我认为你是正确的,B是正确答案崩溃。其他答案不正确。 – Sonorx 2011-03-20 13:49:54

+1

从不编码的.NET或WPF,但我也选择B.它似乎正确地分配两个对象的属性。 – Blender 2011-03-20 13:54:08

回答

7

我认为你是对的。答案d是没有意义的,因为:

  1. 你不需要ContentTemplateSelector,因为你定义的内容明确
  2. ContentTemplateSelector不应该明确地使用,它的使用由ContentControl中时,它需要渲染非可视内容
  3. ContentTemplateSelector默认为空,所以在回答d代码将与NullReferenceException
3

我上周通过了相同的考试。我同意正确答案应该是B. 您可以在示例应用程序中尝试这两种方法,并且您会看到D不起作用。

+0

hi Jogy。你能告诉我考试怎么样?这些问题是否与练习测试包含的内容相似?我已经检查过D不能正常工作 – 2011-03-20 14:00:07

+0

我确实有这个问题和其他问题。我以982分的成绩通过。 – Jogy 2011-03-20 15:42:44