2015-12-18 5 views
0

Я новичок в кодировании WPF. У меня есть проект с пользовательскими элементами управления, закодированными как xaml с кодом C#. Я пытаюсь импортировать эти файлы в другой проект, и когда я пытаюсь использовать эти элементы управления xaml в своем основном файле представления, Visual Studio не может найти пространство имен, к которым привязаны импортированные xaml и C#.Проект WPF с пользовательскими элементами управления XAML

Я попытался изменить пространство имен так же, как и мой текущий проект. Я попытался перезапустить Visual Studio 2013. Ни один из них не работал.

Я попытался добавить проект с помощью настраиваемых элементов управления в свое решение. Импортируемый проект может читать пользовательские xaml, но мой основной проект по-прежнему не может ссылаться на них. Я попытался перетащить файлы в основной проект, и они все равно не сработают.

Я пытался восстанавливать элементы управления XAML-х и C# код-зады в моем новом проекте он все еще говорит:

типа «местный: ClickSelectTextBox» не найден. Убедитесь, что у вас отсутствует ссылка на сборку и что все эталонные сборки построены.

Этот элемент находится под соответствующим пространством имен и в текущем проекте.

+1

Вы добавили директиву 'xmlns: controls_namespace'? – Default

+0

Не могли бы вы пояснить, что вы подразумеваете под «Visual Studio не может найти пространство имен»? – Default

+0

Не могли бы вы пояснить, что вы подразумеваете под «Импортированный проект может читать пользовательские xaml»? Вы имеете в виду проект, в котором находятся пользовательские элементы управления? – Default

ответ

0

В визуальной студии перейдите к TOOLS -> выберите элементы панели инструментов. это позволит вам либо выбрать из множества различных компонентов, либо просмотреть вокруг, чтобы найти DLL, которую вы хотели бы использовать.

EDIT:

О, так вы пытаетесь принять настроенные XAML файлы, которые вы уже написали и изменить их в отдельный проект? Я бы предложил одну из двух вещей.

1: щелкните правой кнопкой мыши имя вашего проекта -> добавьте существующий и одновременно добавьте файл xaml и xaml.cs в свой проект.

, если по какой-то причине не работает, вы можете попробовать

2: создание нового элемента управления XAML (с тем же именем управления вы хотите заехать) в проекте и копия вставки кода XAML в этот элемент управления, это должно автогенерировать оболочку конструктора codebehind, в которой вам понадобится. вы можете перейти в файл xaml.cs и отказаться от любой бизнес-логики, которую вы ищете. Это не самое чистое решение, но иногда редактор WPF становится немного напуганным при импорте файлов xaml.

+0

Я пытаюсь добавить код xaml и C# за файлами, чтобы я мог их настроить. Я не могу этого сделать. Я получаю ошибку: – Sean

+0

Тип «local: ClickSelectTextBox» не найден. Убедитесь, что у вас отсутствует ссылка на сборку и что все эталонные сборки построены. – Sean

+0

Я также попытался добавить элементы управления под панелью инструментов, и все они бросают исключения. – Sean

0

Я знаю, что это старое сообщение, но все же кто-то может найти его полезным :) Итак! ... Убедитесь, что

1) Вы не имеете общественный класс за пределами корневого пространства имен, проверить это link

2) Вы не смешиваясь цели ваших сборок (если не вы не можете 100% избегать что)

Например, если вы ссылаетесь на нечто вроде SQLite.Core NuGet (имеющего как x86, так и 64-разрядные версии SQLite.Interop.dll) в проекте AnyCPU, иногда проще установить целевую программу приложения на x86 или x64 для решения проблем с контентом x86/x64 - но тогда вы можете получить все эти «тип не найден/элемент управления, а не сборка/сборка не найдена», и все эти нонсенсы от Designer даже despit e ваше приложение строит и работает нормально.

Надежда, что помогает

0

Попробуйте загрузить пробную версию ReSharper, установите его, а затем открыть свой код еще раз. Одна из замечательных функций, которые Resharper имеет с кодом XAML, заключается в том, что она автоматически сопоставляет объекты с соответствующим пространством имен. Я думаю, что это облегчит вам и покажет вам массу способов сделать что-то лучше. Когда я впервые изучал WPF, было честно использовать находку Resharper.