Windows Forms позволяют Вам разрабатывать Компоненты, невидимые элементы, которые могут иметь разработчика. Встроенные компоненты включают BackgroundWorker, Таймер и много объектов.NET ADO. Это - хороший способ обеспечить легкую конфигурацию сложного объекта, и это это включает помогшую разработчиками привязку данных.
Я смотрел на WPF, и не кажется, что существует любое понятие компонентов. Действительно ли я прав относительно этого? Есть ли некоторый метод создания компонентов (или что-то как компонент), что я отсутствовал?
Я принял ответ Bob's, потому что после большого исследования я чувствую, что необычные Adorners являются, вероятно, единственным способом сделать это.
Только от моих собственных наблюдений, кажется, что Microsoft пытается переехать от наличия компонентов и подобных вещей в GUI. Я думаю попытки WPF ограничить большую часть того, что находится в XAML к строго вещам GUI. Привязка данных, которую я предполагаю, была бы единственным исключением. Я знаю, что пытаюсь сохранить больше всего все остальное в коде - позади или в отдельных классах или блоках.
Вероятно, не точно ответ, который Вы хотели, но это - мои 0,02$.
До сих пор единственный подход, я вижу это, имеет смысл, должен сделать экземпляр класса статическим ресурсом и настроить его от XAML. Это работает, но было бы хорошо, если бы было что-то как лоток компонента разработчика WinForms, в котором они могли жить.
Можно поместить то, что Вы любите в словаре ресурса, включая классы, которые не имеют никакого отношения что поэтому когда-либо к Wpf.
Следующая XAML добавляет строку "Привет" непосредственно в окно (фактическая строка, не управление, которое показывает строку), можно использовать тот же метод для размещения чего-либо - включая классы, которые Вы пишете сами в файл XAML.
<Window x:Class="MyApp.Window1"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Window.Resources>
<sys:String x:Key="MyString">Hello</sys:String>
</Window.Resources>
</Window>