मैं विभिन्न UserControl
गतिशील रूप से व्युत्पन्न प्रस्तुत करने के लिए ContentControl
का उपयोग कर रहा हूं। जब मैं माता-पिता Window
का आकार बदलता हूं तो मैं अपने जीवन के लिए नहीं समझ सकता कि सामग्री को कैसे खींचें। मुझे this जैसे कई संदर्भ मिले हैं, लेकिन यह अभी भी मेरे लिए काम नहीं कर रहा है। और साथ हीविस्तार करने के लिए WPF ContentControl सामग्री कैसे प्राप्त करें?
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewModels ="clr-namespace:WpfApplication3"
xmlns:views ="clr-namespace:WpfApplication3">
<DataTemplate DataType="{x:Type viewModels:UserControlViewModel}">
<views:UserControl1/>
</DataTemplate>
</ResourceDictionary>
यहां मुख्य Window
के लिए पीछे कोड है:
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ResourceDictionary Source="Dictionary1.xaml"/>
</Window.Resources>
<Grid>
<ContentControl VerticalAlignment="Top"
HorizontalAlignment="Left"
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Content="{Binding Path=ChildView}"
Margin="10"/>
</Grid>
</Window>
इस संसाधन फ़ाइल Dictionary1.XAML
उपयोग करता है:
यह Window
XAML है: यहाँ एक सरल उदाहरण है मॉडल कक्षाएं देखें:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MainViewModel();
}
}
public class MainViewModel
{
public UserControlViewModel ChildView { get; set; }
public MainViewModel()
{
ChildView = new UserControlViewModel();
}
}
public class UserControlViewModel
{
}
और अंत उपयोगकर्ता नियंत्रण:
<UserControl x:Class="WpfApplication3.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Background="Blue"
Height="141" Width="278"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<Grid>
</Grid>
</UserControl>
यहाँ क्या यह रन टाइम पर की तरह लग रहा है:
मैं यहाँ क्या याद आ रही है? मैं बच्चे की सामग्री को इस तरह व्यवहार करने के लिए कैसे प्राप्त कर सकता हूं कि यह माता-पिता के शीर्ष/बाएं और पैरेंट का आकार बदलने के रूप में नीचे/दाएं हिस्सों तक लगी हुई है?
यह शीर्ष/बाईं ओर लंगर डाले रहने नहीं करता है अगर आप ContentControl पर ऊर्ध्वाधर और क्षैतिज संरेखण 'Stretch' का उपयोग करें? – Domysee
@ डोमिनिक - यह नहीं है। यह शीर्ष/बाईं ओर लंगर के बजाय केंद्रित रहता है। –