• 对于IXRApplication的疑问


    ====================
    现在真想去看看IXRApplication对象的SDK:
    PAGE:
    http://msdn.microsoft.com/en-us/library/ee504072.aspx
    强烈建议去看看,
    心得:
    突然联想到:SL 当中有一个资源的概念,我们一般将资源写在单独的资源文件当中,
    那SWE其对于资源文件是怎么样来处理的。SWE 其将这个任务交给我们的大管家IXRApplication来管理,
    那IXRApplication其是怎么样管理的呢. 其是创建一个资源部门,具体细节由 resource manager来管理,
    IXRApplication其只是负责处理 资源部门的高层决策,其所包括哪些:
    IXRApplication::LoadResourceDictionary
    我将其放置在第一的位置,说明其很重要,其能够帮我们解决加载资源文件与解析文件,
    如使用BLEND 2 创建一个工程,其包括两个文件: Application.xaml,page.xaml.
    Application.xaml 其包括全局资源的定义. 对于其的解析我们只能使用LoadResourceDictionary, 而不能通过使用

    ParseXaml ,(小插曲:使用XAML2CPP.EXE 其不能够单独解析app.xaml)

    疑问:
    ParseXaml 其解析的结果是 element tree; LoadResourceDictionary 其解析的结果是什么呢,其是独立对象

    (dependency object), dependency object 是怎么样影响element的呢.

    问1:APP.XAML 与PAGE.XAML 之间关系是什么呢; 其是服务关系,APP.XAML定义资源与提供资源,

    PAGE.XAML
    当中UI ELEMENT 通过{StaticResource } 来使用,==》在解析的流程上,应该先解析App.xaml,然后才是

    PAGE.XAML.

    问2:如果资源是定义在PAGE.XAML当中,我们是否可以直接地使用ParseXaml,而不要使

    LoadResourceDictionary.

    问3:如果资源文件不只是APP.XAML这一个,其有多个资源文件,那么我们怎么样办.
    首先可以确定的是:
    解析资源文件其应该使用 LoadResourceDictionary,
    ==》是否是有多少资源文件,其要求调用多少次LoadResourceDictionary

    (小插曲:virtual HRESULT STDMETHODCALLTYPE LoadResourceDictionary(
          XRXamlSource * pSource,
          IXRResourceDictionary **ppDictionary)=0;
    由于LoadResourceDictionary的XRXamlSource *pSource 所想到的一个问题:
    LoadResourceDictionary 其是加载资源,其为什么不直接使用文件名,而要使用XRXamlSource struct 呢,
    查看XRXamlSource struct 的定义来明白过来,资源有许多种类,其使用这个结构可以采用统一的形式来使用,
    这就像COM对于变量的各种数据类型(int ,char,...) 采用统一的结构来描述。
    值得我们学习使用

    )

    资源其是解析成DEPENDENCY OBJECT, 其是怎么样影响到VISUAL TREE,这是属于各个部门的联合行动,其是要

    通过大管家来亲自操作。

    当XAML当中有IMAGE (而其重点不是IMAGE控件)的时候,其的图片文件是静态加载还是动态加载的呢
    SWE的大管家对于IMAGE这个职员怎么样处理呢,
    IMAGE的特殊性:
    其加载的图片格式是多种的.
    其图片资源也可以制作成DLL,或EXE形式.

    用户可以从local file(IXRApplication::LoadImageFromFile), binary Resource

    (IXRApplication::LoadImageFromResource) 加载图片,然后创建一个IBitmapImage object.

    这个IBitmapImage object 其是由 Resource manager来管理

    ==>当用户对于SWE有什么需求,SWE的大管家IXRApplication其是会自己做一部分,然后交给各个相关部门经理

    来完成.


    SWE 的大管家IXRApplication其还管理用户自定义控件的相关信息的注册。“注册”说明了IXRApplication其内部有

    一张表。这也从IXRApplication::RegisterResourceManager也可以证实.

    IXRApplication 其能够为所在线程其提供消息处理,其具体是什么,其的流程是什么呢.
    IXRApplication::StartProcessing
    IXRApplication::StopProcessing

    究竟什么才是访问UI ELEMENT.
    1.访问一个UI ELEMENT ,
    前提是创建了ELEMENT TREE与Visual host,

    通过大管理IXRApplication 得到,UI 部门经理IXRVisualHosts(其除了管理UI ELEMENT,其还要负责显示与保持状

    态),得到内部对象管理负责人IXRFrameworkElement,
    给内部对象管理负责人IXRFrameworkElement提供 name,其通过IXRFrameElement::FindName就可以得到XAML

    ELEMENT OBJECT.
    此OBJECT 其就代表一个UI ELEMENT 吗,一个UI ELEMENT 其是一个COM对象(com其是一个类的集合),
    其两者之间是什么样的关系呢,一个UI ELEMENT 的COM当中包括哪些类呢


    when you have found an object ,you can obtain an interface pointer to it by calling IUnknow::QueryInterface
    其通过IXRFrameElement::FindName已经找到了元素,且返回了智能指针,
    通过调用IUnknow::QueryInterface 其要得到什么东西,其可以得到什么东西.
    XAML ELEMENTS 其是IXRDependencyObject,且IXRDependencyObject 其继承IUnknown接口
    其说明对于对象的访问,其是要通过IUnknown::QueryInterface

    ====================

  • 相关阅读:
    20200721训练记录
    20200717训练记录
    打家劫舍III(力扣第337题)
    HBase API的删除数据操作的分析
    相交链表(第160题)
    删除排序链表中的重复元素(第83题)
    合并两个有序链表(力扣第21题)
    删除链表的倒数第N个节点(第19题)
    HBase的架构原理
    回文链表、链表求和(234、445)
  • 原文地址:https://www.cnblogs.com/pengxinglove/p/1797525.html
Copyright © 2020-2023  润新知