首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Windows Community

    Extensions in UWP Community Toolkit - FrameworkElement Extensions

    概述 UWP Community Toolkit Extensions 中有一个为FrameworkElement 提供的扩展 - FrameworkElement Extensions,本篇我们结合代码详细讲解  FrameworkElement Extensions 的实现。 FrameworkElement Extensions 为 FrameworkElement 提供了一种简单的绑定实际尺寸的方式,扩展利用 EnableActualSizeBinding 来指定是否允许实时绑定实际尺寸中的 Source: https://github.com/Microsoft/UWPCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI/Extensions/FrameworkElement DependencyObject sender, DependencyPropertyChangedEventArgs args) { var baseElement = sender as FrameworkElement

    98580发布于 2018-04-28
  • 来自专栏张志敏的技术专栏

    Silverlight 中的 UIElement 与 FrameworkElement

    Silverlight 中的 UIElement 与 FrameworkElement 在 Silverlight 中, 有两个比较重要的基础控件 UIElement 和 FrameworkElement (FrameworkElement 为 Silverlight 布局中涉及的对象提供公共 API 的框架。 FrameworkElement 继承自 UIElement , 并添加了下面的功能: 1、 布局 (Layout) : 与 WPF 相似, 为了区别对待继承自 FrameworkElement 的类型 FrameworkElement 定义了生命周期事件 (Loaded/Unloaded) , 这些事件对后台代码来说是非常有用的。 4、 对象树 FrameworkElement 提供了 Parent 属性和 FindName 方法可以在对象树中分别向上和向下查找。

    79910发布于 2020-08-10
  • 来自专栏walterlv - 吕毅的博客

    Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制

    ▲ 被切掉的椭圆 然而,因布局被“切掉”这一特性也是来自于 FrameworkElement! 然而 FrameworkElement 的切掉逻辑就复杂多了,鉴于有上百行,就只贴出链接 FrameworkElement.GetLayoutClip。其处理了各种布局、变换过程中的情况。 那么 FrameworkElement 做了什么呢? 屏幕交互 UIElement 中存在着布局计算,FrameworkElement 中存在着带限制的布局计算,这很容易让人以为屏幕相关的坐标计算会存在于 UIElement 或者 FrameworkElement 样式和模板 FrameworkElement 开始有了样式(Style),Control 开始有了模板(Template)。

    84130发布于 2018-09-18
  • 来自专栏一路走一路失去也一路拥有

    【NEW】WPF窗体中控件移动 + 拖拽大小 + 动画拖动

    Control = Controls as FrameworkElement; //要拖动的控件 FrameworkElement Thumb = sender as FrameworkElement FrameworkElement NewControl = new FrameworkElement(); bool IsDragAndDragSize = false; > ShowControlsList = new List<FrameworkElement>(); ///

    /// 窗体 /// < /summary> FrameworkElement Windows; /// /// 容器:让控件在这里面拖动 // window = sender as FrameworkElement; if (LlayoutContainer.GetType().Equals(typeof(Canvas

    2.9K40编辑于 2022-06-09
  • 来自专栏walterlv - 吕毅的博客

    如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来

    private FrameworkElement _root; // 获取当前窗口的根元素。 private FrameworkElement Root => _root ?? private static FrameworkElement FindRootVisual(FrameworkElement source) => (FrameworkElement)((HwndSource _root; private FrameworkElement Root => _root ?? (_root = FindRootVisual(this)); private static FrameworkElement FindRootVisual(FrameworkElement source) => (FrameworkElement)((HwndSource)PresentationSource.FromVisual(source)).RootVisual

    2K40编辑于 2023-10-22
  • 来自专栏码客

    WPF桌面端开发2-ItemsControl和ListBox获取点击行的索引

    string.IsNullOrEmpty(childName)) { var frameworkElement = child as FrameworkElement; // 如果控件名称符合参数条件 if (frameworkElement ! = null && frameworkElement.Name == childName) { foundChild FrameworkElement; // 如果控件名称符合参数条件 if (frameworkElement ! = null && frameworkElement.Name == childName) { list.Add(

    3.4K30发布于 2020-05-09
  • 来自专栏一路走一路失去也一路拥有

    WPF窗体中控件移动 + 拖拽大小 + 动画拖动

    Control = Controls as FrameworkElement; //要拖动的控件 FrameworkElement Thumb = sender as FrameworkElement FrameworkElement NewControl = new FrameworkElement(); bool IsDragAndDragSize = false; > ShowControlsList = new List<FrameworkElement>(); ///

    /// 窗体 /// < /summary> FrameworkElement Windows; /// /// 容器:让控件在这里面拖动 // NewControl, bool IsDragAndDragSize) dragEvenTrigger(FrameworkElement ShowControl); /// <summary

    2.7K40编辑于 2022-05-31
  • 来自专栏我和未来有约会

    不规则图形的碰撞检测

    public static class CheckHit { public static bool CheckCollision(FrameworkElement control1, FrameworkElement controlElem1, FrameworkElement control2, FrameworkElement controlElem2) { // first see if return bCollision; } } private static bool CheckCollisionPoint(Point pt, FrameworkElement control, FrameworkElement controlElem) { if (controlElem is Image) { hits.Contains(controlElem)); } } private static WriteableBitmap GetWriteableBitmap(FrameworkElement

    1.4K100发布于 2018-01-16
  • 来自专栏dino.c的专栏

    [UWP 自定义控件]了解模板化控件(6):使用附加属性

    oldValue, FrameworkElement newValue) { if (oldValue ! element = obj as FrameworkElement; if (element == null) return; var headerProperty oldValue = (FrameworkElement)args.OldValue; FrameworkElement newValue = (FrameworkElement)args.NewValue AttachedElement { get { return (FrameworkElement)GetValue(AttachedElementProperty); } oldValue, FrameworkElement newValue) { if (oldValue !

    84030发布于 2019-01-18
  • 来自专栏林德熙的博客

    WPF 给 Grid 的辅助方法 添加行列名称绑定

    frameworkElement) { if (e.NewValue is string rowName) { { return; } if (frameworkElement.Parent StringComparison.Ordinal)) { Grid.SetRow(frameworkElement frameworkElement) { if (e.NewValue is string columnName) StringComparison.Ordinal)) { Grid.SetColumn(frameworkElement

    1.1K10编辑于 2022-08-12
  • 来自专栏独立观察员博客

    OxyPlot 导出图片及 WPF 元素导出为图片的方法

    二、导出 WPF 界面元素的方法 首先给出能够导出任意 WPF 界面元素(FrameworkElement)为图片的方法,来源于网络,地址在方法注释中已给出,略作修改,代码如下: using System frameworkElement, string filePath, out string errorMsg) { try { , (int)frameworkElement.ActualHeight, 1 / 96, 1 / 96, PixelFormats.Default ); bmp.Render(frameworkElement); BitmapEncoder encoder = new TiffBitmapEncoder element = d as FrameworkElement; if (element == null) return;

    1.6K10编辑于 2022-12-06
  • 来自专栏huofo's blog

    WPF源代码分析系列一:剖析WPF模板机制的内部实现(一)

    本文是这一系列的第一篇,主要讨论FrameworkTemplate类和FrameworkElement的模板应用框架。 用代码工具我们可以看到,这个方法只在FrameworkElement.ApplyTemplate()里被调用了一次,这意味着这个方法是WPF可视化元素实现模板应用的唯一入口,其重要性无论如何强调都不为过 注意上面代码有一个语句:   FrameworkTemplate template = TemplateInternal; 这说明FrameworkElement实际是根据其属性TemplateInternal 事实上,这个属性与另一个属性TemplateCache是有密切关系的,二者都是FrameworkTemplate类型,它们的定义如下: //***************FrameworkElement 现在问题是:FrameworkElement的子类具体是如何通过覆写虚属性TemplateInternal来自定义模板的?FrameworkTemplate的三个子类的变量有哪些?

    1.5K20编辑于 2022-03-17
  • 来自专栏dino.c的专栏

    [UWP 自定义控件]了解模板化控件(4):TemplatePart

    OnApplyTemplate() { base.OnApplyTemplate(); _headerPart = GetTemplateChild(HeaderPartName) as FrameworkElement button.Click += OnButtonClick; } } 2.3 完整的代码 [TemplatePart(Name = HeaderPartName, Type = typeof(FrameworkElement 只有代码中执行了_headerPart = GetTemplateChild(HeaderPartName) as FrameworkElement这句后,VisualTree上才可以看到HeaderContentPresenter 上面的ContentView代码中即包含这个协定: [TemplatePart(Name = HeaderPartName, Type = typeof(FrameworkElement))] 这段代码的意思是期待在 ControlTemplate中存在名称为 "HeaderContentPresenter",类型为FrameworkElement的部件。

    1.2K20发布于 2019-01-18
  • 来自专栏黄腾霄的博客

    EventTrigger原理浅谈

    这里我们仅研究FrameworkElement的Triggers。 所以我们从实现上了解到了FrameworkElement的Triggers仅支持EventTrigger FrameworkElement在初始化的时候会调用EventTrigger的ProcessTriggerCollection ( FrameworkElement triggersHost )方法,针对集合中的每一个事件,为FrameworkElement添加监听器,而在事件触发时,引发监听器的Handler,使EventTrigger 比如说在 SoundPlayerAction中就实现了如下工作 internal sealed override void Invoke(FrameworkElement el) {

    84930发布于 2020-06-10
  • 来自专栏技术之路

    WPF 得到子指定元素方法和得到指定子元素集合方法MvvM得到焦点

    string.IsNullOrEmpty(childName)) { var frameworkElement = child as FrameworkElement; // 看名字是不是一样 if (frameworkElement ! = null && frameworkElement.Name == childName) { //如果名字一样返回

    1.4K50发布于 2018-01-31
  • 来自专栏林德熙的博客

    WPF 自定义控件入门 可重写的各个方法或属性的意义

    的控件,代码如下 class F1 : FrameworkElement { public F1() { Width = 500; Height = 500 这里的 F2 子控件,也是一个继承 FrameworkElement 的类型,代码定义如下 class F2 : FrameworkElement { public F2() { 这个时候咱依然可以继承 FrameworkElement 来进行自己编写。 默认 WPF 在 FrameworkElement 将会自动裁剪超过布局传入尺寸的画面。 对于继承 FrameworkElement 元素的控件来说,默认 WPF 将会自动裁剪超过布局传入尺寸的画面,除非重写 GetLayoutClip 修改行为。

    2K20编辑于 2023-04-07
  • 来自专栏菩提树下的杨过

    silverlight图片局部放大效果

    private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)         {             FrameworkElement  element = sender as FrameworkElement;             mousePosition = e.GetPosition(element);                      } private void Rectangle_MouseMove(object sender, MouseEventArgs e)         {             FrameworkElement  element = sender as FrameworkElement; if (trackingMouseMove)             { double deltaV = e.GetPosition  element = sender as FrameworkElement;             trackingMouseMove = false;             element.ReleaseMouseCapture

    3.8K60发布于 2018-01-23
  • 来自专栏python3

    telerik upload 在silv

                    {                     // Retrieve the TextBlock that will hold new file name                     FrameworkElement                         }                     }                 }             }         }         private static FrameworkElement {                 DependencyObject child = VisualTreeHelper.GetChild(control, i);                 FrameworkElement element = child as FrameworkElement;                 if (element !

    57210发布于 2020-01-14
  • 来自专栏hbbliyong

    WPF进度条

    老方法,先看定义: [TemplatePartAttribute(Name = "PART_Track", Type = typeof(FrameworkElement ))]   [TemplatePartAttribute(Name = "PART_Indicator", Type = typeof(FrameworkElement))]   public class  ProgressBar : RangeBase      从类定义中看到,ProgressBar控件的模板有两个部分,我们在定义模板的时候用什么都可以,上面的定义指定是FrameworkElement ,因此,只要是继承自FrameworkElement的都可以作为模板的一部分,重点是Name属性一定要和每个部分的名称对应,也就是说你定义的模板部件必须为PART_Track和PART_Indicator

    1.4K40发布于 2018-03-05
  • 来自专栏dino.c的专栏

    [WPF] 玩玩彩虹文字及动画

    里加上这段: <TextBlock.RenderTransform> <TranslateTransform Y="-90" /> </TextBlock.RenderTransform> <FrameworkElement.Triggers > <EventTrigger RoutedEvent="<em>FrameworkElement</em>.Loaded"> <BeginStoryboard> <Storyboard </DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger> </FrameworkElement.Triggers TextBlock.Foreground> <TextBlock.RenderTransform> <TranslateTransform /> </TextBlock.RenderTransform> <FrameworkElement.Triggers > <EventTrigger RoutedEvent="<em>FrameworkElement</em>.Loaded"> <BeginStoryboard> <Storyboard

    1.4K10发布于 2021-11-10
领券