C#XAML WPF在对UserControl进行渲染之前使用参数

本文关键字:参数 在对 WPF UserControl C#XAML | 更新日期: 2023-09-27 18:28:50

我是c#世界的新手,有一个关于xaml UserControl对象的参数使用的问题。

我在xaml:中的MainGrid/MainWindow中定义了一个UserControll"ImageButton"

<local:ImageButton HorizontalAlignment="Left" Height="100" Margin="49,122,0,0" VerticalAlignment="Top" Width="100" sText="SomeText" sType="main_button" Source="Resources/main_button.png" />

在另一边,我有我的ImageBButton.xmal.cs

public partial class ImageButton : UserControl
.....
public ImageSource Source
{
    get { 
        return (ImageSource)GetValue(SourceProperty); }
        set { SetValue(SourceProperty, value); }
    }
.....
public static readonly DependencyProperty SourceProperty = DependencyProperty.Register("Source", typeof(ImageSource), typeof(ImageButton), new UIPropertyMetadata(default(ImageSource)));
.....
public ImageButton()
{
    InitializeComponent();
}
.....

现在我想知道在哪一点我可以访问我在xaml中定义的参数值。

我尝试了几个方法(包括构造函数本身),但在c#代码后面只得到一个空值。当我现在尝试了几个方法时,我现在使用"OnRender"方法——在这个方法中,我可以从xaml访问我的参数值。

但我真的不确定这是否是正确的方式。。

在绘制Usercontroll之前,可能有人知道另一个方法,在那里我可以访问xaml参数值并处理一些事情?

谨向致意

C#XAML WPF在对UserControl进行渲染之前使用参数

UserControl自己的Xaml中声明的属性值将在InitializeComponent()中处理。在引发Initialized之后,UserControl的Xaml使用站点中提供的值将可用。

绑定有点不同;绑定将被应用并准备好接收基于上述规则的值,但是在调度器有机会处理具有DataBind优先级的项目之前,源值可能不会被传输到目标。这将在控件为Loaded时发生。