在XAML中添加对象属性的好地方是什么?

时间:2014-11-17 15:06:20

标签: wpf xaml

MSDN: Gets or sets a window's border style.

代码为:<object WindowStyle="WindowStyle" .../>

我添加了但失败了。

<Window x:Class="ClosingWindowAsync.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     Closing="MainWindow_Closing"
    Title="MainWindow" Height="350" Width="525">
<object WindowStyle="WindowStyle" />

错误是:

  Windows Presentation Foundation(WPF)项目不支持

对象

为什么?

2 个答案:

答案 0 :(得分:0)

您应该将属性放在Window元素中,如下所示:

<Window x:Class="ClosingWindowAsync.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Closing="MainWindow_Closing"
        Title="MainWindow" Height="350" Width="525"
        WindowStyle="SingleBorderWindow">
  <Grid>
  </Grid>
</Window>

您从MSDN提供的链接清除了这一点。在代码之上,它说:

  

XAML属性用法

这只是该属性的一个示例用法。这一行:

<object WindowStyle="WindowStyle" .../>

是如何使用它的一个例子。在实际代码中,它看起来像:

<Window WindowStyle="SingleBorderWindow />

答案 1 :(得分:0)

XAML属性用法示例中的

object 只是一个放置器。它也可以在其他属性的描述中找到,例如:

<object Title="string" .../>
<object Top="double" .../>

广义占位符部分的XAML Usage Syntax文章中详细介绍了此方法:

对象和属性占位符用于语法中,其中没有实际方法来预测正在设置哪个属性,或者属性存在于哪个特定对象上。这可能是因为有很多可能性,或者因为范围不是固定的集合。 (例如,某人可以实现具有特定类型值的属性,并且支持类型的XAML语法仍然可以正常工作。)您可以将对象和属性占位符视为具有属性用法类型转换器的类型的语法的一部分类型或枚举。

Basic XAML syntax guide文章:

对象属性:组合中的对象属性用于显示的语法是可用作许多属性的属性值的类型的语法的情况。例如,为Brush显示的Xaml属性用法包括:&lt; object property =“predefinedColorName”/&gt;

在您的情况下 object = Window ,您的代码应按以下方式查找:

<Window WindowStyle="SingleBorderWindow" ... >