关闭

win10 uwp 自定义控件初始化

标签: uwpxaml控件
738人阅读 评论(0) 收藏 举报
分类:

我遇到一个问题,我在 xaml 用了我的自定义控件,但是我给他设置了一个值,但是什么时候我才可以获得这个值?

本文告诉大家,从构造函数、loaded、Initialized 的调用过程。

用最简单的方法创建一个自定义控件,然后在他里面写一个属性

        public static readonly DependencyProperty AmameProperty = DependencyProperty.Register(
            "Amame", typeof(int), typeof(MargeGlx), new PropertyMetadata(default(int)));

        public int Amame
        {
            get { return (int) GetValue(AmameProperty); }
            set { SetValue(AmameProperty, value); }
        }

然后在 MainPage 的 xaml 使用它,给他一个属性值,这里给他 2

然后写 load 和 Initialized 函数。

      private void OnLoaded(object sender, RoutedEventArgs e)
        {
            if (Amame == 2)
            {

            }
        }

        protected override void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);

            if (Amame == 2)
            {

            }
        }

需要知道的, loaded 是事件,可以在构造使用下面代码

            Loaded += OnLoaded;

然后运行,查看他们的属性值是否修改

可以看到在构造函数时,属性没有获得值。

而在 OnInitialized ,同样,可以看到属性也没有获得值。同时无法获得 ActualHeight 和 ActualWidth 的值。

在 Loaded 的时候,可以获得属性的值,而且可以获得 ActualHeight 和 ActualWidth 的值。

所以调用顺序是 构造-OnInitialized-Loaded

参见:WPF概念解析一: FrameworkElement的Loaded事件和Initialized事件

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

1
0
查看评论

win10 uwp 自定义控件 SplitViewItem

本文主要是因为汉堡菜单里面列出的菜单很多重复的图标和文字,我把它作为控件,因为是随便写,可能存在错误,如果发现了,请和我说或关掉浏览器,请不要发不良言论。 我们使用汉堡菜单,经常需要一个 需要一个图标和一个文字 我开始写 ListV...
  • lindexi_gd
  • lindexi_gd
  • 2016-07-05 08:55
  • 3740

win10 uwp 验证输入 自定义用户控件

TextBox是给用户输入,我们有时要用户只输入数字,而用户输入汉字,我们就有提示用户,那么这东西用到次数很多,我们需要做成一个控件。 我们可以用别人的库,我找到一个大神写的库,很好用 我们使用这个库可以定义很多验证,我记录我如何使用他这个库,还有如何去修改这个库。如何自定义控件做一个和大神做的...
  • lindexi_gd
  • lindexi_gd
  • 2017-03-25 10:13
  • 2684

win10 uwp 入门

UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客。
  • lindexi_gd
  • lindexi_gd
  • 2016-07-27 08:55
  • 4415

win10 UWP 应用设置

win10 UWP 应用设置 简单的把设置需要的,放到微软自带的LocalSettings LocalSettings.Values可以存放几乎所有数据 如果需要存放复合数据,一个设置项是由多个值组成,可以使用ApplicationDataCompositeValue将多个合并。 存放一个st...
  • lindexi_gd
  • lindexi_gd
  • 2016-01-12 21:01
  • 2355

win10 uwp 毛玻璃

毛玻璃在UWP很简单,不会和WPF那样伤性能。 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃。毛玻璃可以使用 win2D 方法,也可以使用 Compositor 。使用 win2d 得到软件内控件毛玻璃,而使用 Compositor 可以获得窗口毛玻璃。
  • lindexi_gd
  • lindexi_gd
  • 2017-06-19 09:12
  • 2398

win10 uwp iot

这篇文章主要译: https://msdn.microsoft.com/magazine/mt694090 有很多都是胡说,随便喷,但我不会理。
  • lindexi_gd
  • lindexi_gd
  • 2016-04-24 08:13
  • 5883

解决 Win10 UWP 无法使用 ss 连接

一旦使用了 ss, 那么很多应用就无法连接网络。 本文提供一个方法可以简单使用ss提供的代理
  • lindexi_gd
  • lindexi_gd
  • 2017-04-26 09:12
  • 5052

Win10的UWP之进度条

关于UWP的进度条的处理的方案有两种方案 我们新建一个项目,然后处理的界面如下的代码<Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowD...
  • zhongyanfu0
  • zhongyanfu0
  • 2016-07-21 19:39
  • 1239

Win10/UWP 扫描二维码

在Win10开发中,扫描二维码以及拍照都和以前的Windows 8.1 相同,是使用MediaCapture对象来获取图片或者视频预览数据,通过MediaCapture的CapturePhotoToStreamAsync()方法就可以拿到IRandomAccessStream流进行二维码解析或者做其...
  • igweyou
  • igweyou
  • 2015-12-08 09:47
  • 2381

win10 uwp 获取按钮鼠标左键按下

我们可以使用`PointerPressed`获得鼠标右键按下,但是我们如何获得左键?
  • lindexi_gd
  • lindexi_gd
  • 2016-12-29 09:37
  • 2465
    个人资料
    • 访问:629218次
    • 积分:9200
    • 等级:
    • 排名:第2408名
    • 原创:240篇
    • 转载:16篇
    • 译文:25篇
    • 评论:240条
    博客专栏
    文章分类
    最新评论