EDIT: Когда я хочу добавить VideoStream прямо в сетку: Grid.Children.Add(VideoStream);
IDE говорит, что это неправильный аргумент.Как добавить UserControl в UniformGrid в .cs
У меня есть класс:
public partial class VideoStream : UserControl
И в MainWindow
класс, я хотел бы добавить это UserControl
к UniformGrid
вставленной в этом окне:
<Window x:Class="HomeSecurity.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" WindowState="Maximized">
<UniformGrid x:Name="Grid">
<WindowsFormsHost x:Name="Host"></WindowsFormsHost>
</UniformGrid>
</Window>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
VideoStream VideoStream = new VideoStream();
// VideoStream.TopLevel = false;
// WindowsFormsHost Host = new WindowsFormsHost();
try {
Host.Child = VideoStream;
Grid.Children.Add(Host); //THIS CAUSES THE EXCEPTION
} catch (Exception e) {
Console.WriteLine(e.StackTrace);
}
}
}
Но я получаю исключение:
A first chance exception of type 'System.ArgumentException' occurred in PresentationCore.dll
w System.Windows.Media.VisualCollection.Add(Visual visual)
w System.Windows.Controls.UIElementCollection.AddInternal(UIElement element)
w System.Windows.Controls.UIElementCollection.Add(UIElement element)
w HomeSecurity.MainWindow..ctor() w c:\Users\R\Documents\Visual Studio 2013\Projects\HomeSecurity\HomeSecurity\MainWindow.xaml.cs:wiersz 28
'HomeSecurity.vshost.exe' (CLR v4.0.30319: HomeSecurity.vshost.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\UIAutomationProvider\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationProvider.dll'. Symbols loaded.
'HomeSecurity.vshost.exe' (CLR v4.0.30319: HomeSecurity.vshost.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\UIAutomationTypes\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationTypes.dll'. Symbols loaded.
Как правильно добавить этот UserControl
к UniformGrid
Но когда я хочу, чтобы пользователь решил, сколько именно этого пользовательского контроля он хочет видеть. как это сделать без кода C#? В XAML нет никаких условных инструкций. – Yoda
Проверьте обновление в ответ. –
Хорошая точка, упустил это. Спасибо, но проблема в том, что теперь я не вижу контроля пользователя в этой сетке. Я имею в виду, что ни один пользовательский элемент управления, который я создал, не виден в этой унифицированной форме. Когда я изменил «VideoStream», чтобы получить «Form», содержимое будет видимым, но мне сказали, что stackoverflow, который «VideoStream» должен выводить после 'UserControl' не' Form' – Yoda