2013-01-24 64 views
0

我有问题找出在哪里使用xaml关键字,因为它很难找出它想要的层次结构。似乎有一些关于如何以及在何处使用属性,属性或子节点的宏伟设计。如何使用xaml魔术

<Node Attribute="True"> 
    <Node.Property /> 
</Node> 

我发现这个漂亮的页面解释所有的ribbon menu properties,但不知道如何在XAML中使用它们。经过半个小时的搜索和尝试,我设法得到一个图标显示在功能区菜单按钮中。

  1. 这一切背后的逻辑是什么,以及如何弄清楚在哪里使用?

  2. 如何合并功能区菜单和应用程序栏(大多数Windows应用程序的顶部栏)?所以我得到一个漂亮的Ribbon应用程序菜单,就像在这个例子中。

  3. 有没有办法关闭xaml背景复制?我为此牺牲了Intellisense。

因为xaml编辑器的性能很糟糕,所以对此有很多建议,但目前还没有任何工作。

编辑: 我知道xaml语法,但没有提示要使用哪种层次结构。所以如果我找到我想使用的对象(因为它们都可用),它只会说我使用了错误的对象,它应该要求它想要的对象。

也在正常在使用引用时编程可以始终使用它中的所有类。使用xaml,我们必须突然知道我们的类来自哪个引用,也不会为您找到引用,您必须尝试所有引用来查看它们是否具有某个类或找到代码示例。

+1

采取MSDN看看[XAML概述(http://msdn.microsoft.com/en-us/library/ms752059.aspx)。 – Clemens

回答

2

好问题。在你的第一个问题中,你很难感受到你要求的是什么,但是我会对这个问题进行简短的介绍。我对你的#2问题有一个答案。我没有你的#3的答案。

“1.这一切背后的逻辑是什么,以及如何弄清楚在哪里使用什么?”

像克莱门斯提到的那样,XAML Overview在解释事情方面做得很好。 我猜你所问的主要问题之一就是“你什么时候使用属性语法和属性元素语法”。从该文档:

对于对象元素的某些属性,属性语法是不可能的,因为对象或必要提供该属性值的信息不能被充分地属性语法的引号和字符串限制内表达。对于这些情况,被称为属性元素语法不同的语法可以用于....

现在关于你的问题,这部分...

“此外,在正常节目当您使用参考你总是可以使用它中的所有类。有了xaml,我们必须突然知道我们班的课程是从哪里来的,也不会找到你的参考,你要么尝试所有的参考资料,看他们是否有特定的课程或找到一个代码示例。“

如果您的问题的一部分是关于如何更容易地处理您的XAML(或更恰当的xmlns)命名空间,以便更容易地在您的XAML中获得参考,那么您可能会发现a technique,您可能会发现它有用。您可以整合命名空间,这样就可以用更少的XAML命名空间前缀(或甚至没有命名空间前缀,如果你把这个技术发挥到极致)。

“2。如何合并功能区菜单和应用程序栏(大多数Windows应用程序的顶部栏)?所以,我得到一个不错的丝带应用程序菜单,比如上例中“

本质上讲,它似乎你问如何:(一)延长窗口铬区域(Aero的玻璃面积)下降到客户端窗口的一部分(应用程序通常用来放置东西的部分),以及(b)将窗口的客户端部分向上扩展到窗口镶边区域。如果你可以做这两个这些事情,那么你最终可以看起来像微软的办公产品或现代的网页浏览器,幸运的是有WPF Shell Integration Library可以帮助你做这两件事,我发现this blogthis blog(以及它们提供的源代码)是开始使用WPF Shell的很好的指南整合库。

使用这个库,我能够使这个窗口(除了航空颜色变化能力,这是一个完整的其他话题)。注意,两个我提到在这里工作品质(在TabControl的是正在显示了在正常窗口铬顶部条区域和窗口铬的Aero玻璃在正常的客户区显示下降):

Window Chrome example

1

这里是我拿

1)什么是这一切背后,如何逻辑弄清楚用什么 在哪里?

无论你可以""之间的配合可以去内联,如:

<TextBlock Text="{Binding Name}" /> 

任何不能,走元素的方法:

<TextBlock> 
    <TextBlock.Text> 
     <MultiBinding StringFormat="{}{0} ({1})"> 
      <Binding Path="Name" /> 
      <Binding Path="Gender" /> 
     </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

2)如何合并带有应用程序栏的功能区菜单(大多数Windows应用程序的顶部栏位在 )?所以我得到一个漂亮的Ribbon应用程序菜单, 就像这个例子。

你会发现周围谷歌或多或少复杂的魔神,这是它的本质:

<Window ... 
     WindowStyle="None" AllowsTransparency="True" Background="Transparent" 
     ...> 
    <!-- Fill it up with a PNG image if you want to play with transparency --> 
</Window> 

然后让带顶部的元素,并重新创建关闭/最大化按钮

3)有没有办法关闭xaml背景复制?我愿意为此牺牲 Intellisense。

是的,这就是所谓的Notepad++