Я могу заставить Kaxaml загружать внешние сборки с использованием пространств имен CLR, но это очень неудобно, потому что нужно много сопоставлений, чтобы нацеливаться на все разные пространства имен в сборке, в то время как пользовательское XmlnsDefinition в сборке позволило бы уйти только с одним или несколькими.
При поиске решения я, очевидно, нашел этот вопрос , но, похоже, он охватывает только использование пространств имен CLR, поскольку ни один из ответов не работает для пользовательских пространств имен ( "Невозможно задать неизвестное участник ... ").
Пример:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:is="http://schemas.microsoft.com/expression/2010/interactions">
<!-- ... -->
<Button Content="Test">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<is:ChangePropertyAction PropertyName="IsOpen"
TargetName="popup"
Value="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
Это не будет работать, однако если вы используете CLR:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:is="clr-namespace:Microsoft.Expression.Interactions;assembly=Microsoft.Expression.Interactions"
xmlns:isc="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions">
<!-- ... -->
<Button Content="Test">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<isc:ChangePropertyAction PropertyName="IsOpen"
TargetName="popup"
Value="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
Пространство имен is
здесь не используется, и мне пришлось добавить подпространство имен сборки взаимодействий.
Было бы идеально, если бы первый метод работал.