Хорошо. Я создал пример пользовательского элемента управления WPF, в котором размещается элемент управления Winforms, со свойством зависимости, которое связано со свойством text элемента управления winforms.
public partial class ActiveXObjectHoster : UserControl
{
private static System.Windows.Forms.Label testObject;
public ActiveXObjectHoster()
{
InitializeComponent();
testObject = new System.Windows.Forms.Label();
windowsFormsHost1.Child = testObject;
}
#region Properties
public static DependencyProperty FileNameProperty = DependencyProperty.Register("FileName", typeof(string), typeof(ActiveXObjectHoster), new UIPropertyMetadata("",new PropertyChangedCallback(OnFileNamePropertyChanged)));
public string FileName
{
get { return (string)GetValue(FileNameProperty); }
set
{
SetValue(FileNameProperty, value);
}
}
private static void OnFileNamePropertyChanged(
DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
testObject.Text = (string)e.NewValue;
}
#endregion
}
Вот xaml элемента управления (это очень просто)
<UserControl xmlns:my="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
x:Class="WPFTestApp2.Controls.ActiveXObjectHoster"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="ObjectHost"
Height="100" Width="100">
<Grid>
<my:WindowsFormsHost x:Name="windowsFormsHost1" />
</Grid>
</UserControl>
Что вам нужно сделать, это изменить объект теста с метки на любой объект Visio, который вы использовали. Затем в обратном вызове свойства измените текстовое свойство на имя файла или любое другое свойство, которое вы хотели.
Как упомянуто выше, это делается в коде, но отлично подходит для пользовательского элемента управления, он полностью отделен от того, что его использует, вам просто нужно привязать свойство filename к управление.
Вот ссылка на проект, который я создал, показывающий, как используется элемент управления. Существует текстовое поле, текст которого связан со свойством FileName, которое изменяет текст меток Winforms.
Вы можете поместить это в пользовательский контроль Winforms, если вы хотите использовать его в winforms (как вы упомянули в своем ответе на мой комментарий)
Попробуйте заменить метку для вашего элемента управления и посмотрите, работает ли она.