2009-02-23 3 views

ответ

1

При отображении пользовательских классов и пространств имен в XAML, используя CLR-имен/сборки обозначения, вы не можете указать путь сборки, содержащей класс, но только имя новой сборки (более подробную информацию можно найти на MSDN) , так как все ссылочные сборки должны быть связаны во время компиляции XAML через файл проекта.

Kaxaml не поддерживает концепцию проекта, поскольку он не выполняет никакой компиляции, а динамически анализирует и делает XAML вошел в редакторе «на лету» с помощью System.Windows.Markup .XamlReader класс.

Это означает, что при использовании Kaxaml вы можете ссылаться только на классы, содержащиеся в сборках, которые являются частью .NET Framework.

+5

Этого ответа частично неправильно.Вы можете ссылаться на другие сборки, импортируя пространство имен и копируя сборку в текущий каталог Kaxaml. – Kilhoffer

18
  1. Копия WPFToolkit.dll в "C: \ Program Files \ Kaxaml \"
    • Restart Kaxaml

Теперь вы можете использовать такое пространство имен:

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

Другим вариантом было бы создание соединения и добавление пробного пути в конфигурацию Kaxaml.

Сделать Junction закодировать

  • запустить повышенные CMD
  • кд "C: \ Program Files (x86) \ Kaxaml"
  • mklink/J ProbeFolder «C: \ путь-to ваш код»

Изменить 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> 
  • сохранить файл
  • рестарт Kax AML
+0

Это потрясающее решение и отлично сработало для меня. Благодаря! PS: Предостережение, мы используем dmake для создания наших приложений WPF, и мы не можем использовать способ доступа с использованием clr-namespace для включения сборки (мы должны использовать что-то вроде http://company.com/controls). Поэтому убедитесь, что вы используете более хрупкий метод (пространство имен clr), чтобы заставить его работать. – JoeB

+0

Это лучшее решение, которое я нашел при работе с сторонними библиотеками управления, потому что он включает весь каталог без дублирования файлов. Спасибо за публикацию Тодда. – VipX1

+0

Все это для меня - это немедленный крах, когда я запускаю Kaxaml, даже когда цель ProbeFolder пуста. Кажется, что проблема заключается в анализе файла конфигурации. Я дважды проверял, чтобы убедиться, что я правильно выполнил шаги. Я использую последнюю версию Kaxaml. – allonym

0

здания на вершине решения Тодда Уайта (& это будущий справочник для себя тоже) вашего XAML в Kaxaml будет ссылаться на 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> 
Смежные вопросы