【问题标题】:How do I reference different DLLs in Kaxaml如何在 Kaxaml 中引用不同的 DLL
【发布时间】:2009-02-23 09:13:14
【问题描述】:

我想在 Kaxaml 中使用 DataGrid。如何引用工具包 dll?

【问题讨论】:

    标签: xaml xaml-tools kaxaml


    【解决方案1】:
    1. 将 WPFToolkit.dll 复制到“C:\Program Files\Kaxaml\”
      • 重启 Kaxaml

    现在你可以使用这样的命名空间了:

    xmlns:dg="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
    

    【讨论】:

      【解决方案2】:

      另一种选择是建立一个连接并向 Kaxaml 的配置添加探测路径。

      与代码建立连接

      • 运行提升的 cmd
      • cd "c:\Program Files (x86)\Kaxaml"
      • mklink /J ProbeFolder "c:\path-to-your-code"

      修改 Kaxaml.exe.config

      • 运行高架记事本
      • 打开“C:\Program Files (x86)\Kaxaml\Kaxaml.exe.config”
      • 将以下内容添加到
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="ProbeFolder"/>
         </assemblyBinding>
      </runtime>
      
      • 保存文件
      • 重启kaxaml

      【讨论】:

      • 这是一个很棒的解决方案,非常适合我。谢谢! PS:需要注意的是,我们使用 dmake 来构建我们的 WPF 应用程序,并且我们不能使用 clr-namespace 方式来包含程序集(我们必须使用类似 company.com/controls 的东西)。因此,请确保您使用更脆弱的方法(clr-namespace)来使其工作。
      • 这是我在使用 3rd 方控件库时发现的最佳解决方案,因为它包含整个目录而不复制文件。感谢您发布托德。
      • 所有这些对我来说都是在我启动 Kaxaml 时立即崩溃,即使 ProbeFolder 的目标是空的。解析配置文件似乎有问题。我仔细检查以确保我正确地遵循了这些步骤。我正在使用最新版本的 Kaxaml。
      【解决方案3】:

      当使用 clr-namespace/assembly 表示法在 XAML 中映射自定义类和命名空间时,您不能指定包含该类的程序集的路径,而只能指定程序集的名称(更多详细信息可以在 MSDN 上找到),因为在 XAML 编译期间必须通过项目文件链接所有引用的程序集。

      Kaxaml 不支持项目的概念,因为它不进行任何编译,而是使用 System. Windows.Markup.XamlReader 类。

      这意味着在使用 Kaxaml 时,您只能引用包含在作为 .NET Framework 一部分的程序集中的类。

      【讨论】:

      • 这个答案部分错误。您可以通过导入命名空间并将程序集复制到 Kaxaml 的当前目录来引用其他程序集。
      【解决方案4】:

      基于 Todd White 的解决方案(这也是我自己的未来参考),您在 Kaxaml 中的 XAML 将引用如下的第 3 方库:

      <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:dxlc="clr-namespace:DevExpress.Xpf.LayoutControl;assembly=DevExpress.Xpf.LayoutControl.v13.2"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <!-- Layout Control  Start -->
        <dxlc:LayoutControl Orientation="Horizontal">
        </dxlc:LayoutControl>
        <!-- Layout Control  End -->
      </UserControl>
      

      【讨论】:

        猜你喜欢
        • 2012-01-02
        • 1970-01-01
        • 2011-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-30
        • 1970-01-01
        相关资源
        最近更新 更多