使用WPF中两个不同库中的控件

使用WPF中两个不同库中的控件,wpf,Wpf,我试图在WPF中使用来自不同名称空间的控件(来自MahApps.Metro和MaterialDesignInXaml)之间有所不同,但是我不确定如何表达这一点,谷歌也没有产生任何有用的结果 我想做的是在窗口中使用MaterialDesignInXaml的文本框,同时保留MahApps中的所有其他控件,这可能吗?如果可能,值得吗 命名空间引用: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:mater

我试图在WPF中使用来自不同名称空间的控件(来自
MahApps.Metro
MaterialDesignInXaml
)之间有所不同,但是我不确定如何表达这一点,谷歌也没有产生任何有用的结果

我想做的是在窗口中使用
MaterialDesignInXaml
的文本框,同时保留
MahApps
中的所有其他控件,这可能吗?如果可能,值得吗

命名空间引用:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
XAML(希望使其成为材料设计):


我建议您查看MahApps的WPF演示

或多或少:要使样式正常工作,必须在“样式”属性中引用它们

要让它们作为“默认”样式工作,则是另一个问题。 这应该通过对basedOn属性集使用单独的样式来实现:

原始答案

在文件的最顶端,您可以找到XAML的根节点,在那里您必须添加一个引用控件的新XAML命名空间

xmlns:myns=“clr命名空间:实际的.namespace.Of.Classes;assembly=AssemblyTheyAreInside”

之后,您可以使用该名称空间像其他名称空间一样访问控件,只要在其前面加上xaml名称空间

如果您开始编写
xmlns:myns
intellisense还应该向您提供可用的名称空间

进一步提示:

  • myns
    可以是您喜欢的任何东西
  • 您可以引用任意多个名称空间
  • 名称空间可以分组在URL下

我引用了这两个名称空间,并且我可以从这两个名称空间中获得独占控件,但如果您愿意,我尝试获得的是“普通”控件,因此每当我创建文本框时,它都只使用Metro控件,以便您只“使用”例如
,并且它应用Metro样式?适当的例子可以帮助你更清楚地理解你想要什么:)好的,我想我知道需要做什么:),非常感谢@peaches有一个关于使用材料设计和MahApps的指南。基本上,可以手动将控件的样式设置为材质设计或MahApps样式。您还可以向App.xaml添加参考MahApps或Material Design的资源,以便在它们之间轻松切换。请参阅《入门指南》以及:@DavidSchwartz哦,太棒了!我一定是不知怎么错过了,谢谢。是的,你可以,因为下面的答案是正确的。在我看来,这不值得。MahApps没有你需要的款式吗?修改它。功能,扩展它。@kenny more整个文本框,以及它的动画方式,很遗憾,它无法设置样式,因为Metro文本框只是标准的windows文本框,但是MaterialDesign one在关注它时有一个很好的动画,这将更适合我当前的项目。那么你是在谈论样式设置?例如,您希望一些
文本框
使用来自一个库/命名空间的样式,而另一些使用来自另一个库/命名空间的样式?@DavidSchwartz耶!
<TextBox Margin="30,50">

</TextBox>