证书和问题的正确答案

时间:2011-03-20 13:29:24

标签: wpf

我正在准备考试和学习问题。但是我有一个问题,在我看来答案是错误的。这是正确答案是D的问题:

  

您使用Microsoft .NET Framework 4   创建Windows演示文稿   基金会(WPF)申请。该   application有一个名为的窗口   MainWindow有一个StackPanel   控件名为sp作为根元素。   您想要创建一个Button控件   包含一个TextBlock控件   “保存”文本属性。你需要   动态创建控件并添加   对sp的控制哪个代码段   你应该写在构造函数中吗?   MainWindow类

A:

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

B:

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?你有任何想法吗?

2 个答案:

答案 0 :(得分:7)

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

  1. 您不需要ContentTemplateSelector,因为您明确定义了内容
  2. ContentTemplateSelector不应该显式使用,ContentControl在需要呈现非可视内容时使用
  3. ContentTemplateSelector默认为null,因此答案D中的代码会因NullReferenceException
  4. 而崩溃

答案 1 :(得分:3)

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

相关问题