Я пытаюсь использовать сторонний компонент в своем приложении Silverlight и когда я пытаюсь создать экземпляр управления, я получаю XamlParseException:
{System.Windows.Markup.XamlParseException: **Set property 'System.Windows.FrameworkElement.Style' threw an exception.** [Line: 0 Position: 0]
---> System.Windows.Markup.XamlParseException: **Elements in the same ResourceDictionary cannot have the same x:Key** [Line: 1739 Position: 47]
at MS.Internal.XcpImports.CreateFromXaml(UnmanagedMemoryStream stream, String sourceAssemblyName, boolean createNamescope, Boolean requireDefaultNamespace, Boolean allowEventHandlers)
at System.Windows.Controls.Control.GetBuiltInStyle(IntPtr nativeTarget, IntPtr& nativeStyle)
--- End of inner exception stack trace ---
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at SpellCheckerSample.StandardSpellDialog.InitializeComponent()
at SpellCheckerSample.StandardSpellDialog..ctor()}
Как я могу отладить это? Как я знаю, в какой строке файла 1739, Положение 47 находится?
Оказывается, моя конкретная проблема заключалась в том, что компонент ComponentOne работает только в Silverlight 4. Как только я переключился на целевой SL4, все заработало.
Может быть, нелегко найти. В основном старайтесь собрать как можно больше деталей от отладчика.
XamlParseException
. После того, как я написал это, я понял, что конструктор элемента управления действительно находится в стеке вызовов, и это SpellCheckerSample
. Скорее всего, это страница .XAML для этого элемента управления. Если вы можете получить доступ к источнику, имя файла, скорее всего, будет примерно таким, как SpellCheckerSample.xaml .
Сама ошибка довольно проста, похоже, что несколько вещей определены с одним и тем же ключом в одном и том же ResourceDictionary. Приведенный ниже код вызовет это:
<Window.Resources>
<myConverters:BananaToCarrotConverter x:Key="StupidestConverterEver" />
<myConverters:BananaToAppleConverter x:Key="StupidestConverterEver" />
<Window.Resources>