UserControl 依赖属性设计时

2023-12-28

我正在 WPF 中创建一个简单的用户控件,其中包含一个按钮内的 TextBlock。

<UserControl x:Class="WpfExpansion.MyButton"..... >
    <Grid >
        <Button Background="Transparent" >
            <TextBlock Text="{Binding Path=Text}"/>
        </Button>
    </Grid>
</UserControl>

还有“文本”依赖属性。

public partial class MyButton : UserControl
{
    public MyButton()
    {
        InitializeComponent();
        this.DataContext = this;         
    }

    public string Text
    {
        get { return (string)GetValue(TextProperty); }
        set { SetValue(TextProperty, value); }
    }
    public static readonly DependencyProperty TextProperty =
        DependencyProperty.Register("Text", typeof(string), typeof(MyButton), new PropertyMetadata(string.Empty));

}

然后我像这样使用 UserControl:

<MyButton Text="Test" />

问题是 Visual Studio 设计没有改变,但它可以在运行时运行。

怎么了?

我也尝试过

DataContext="{Binding RelativeSource={RelativeSource Self}}"

在 UC 定义内,没有成功。


尝试使用FrameworkPropertyMetadata代替PropertyMetadata,指定AffectsRender像下面这样,那么restart视觉工作室:

public static readonly DependencyProperty TextProperty =
    DependencyProperty.Register("Text", typeof(string), typeof(MyButton),
        new FrameworkPropertyMetadata(string.Empty,
            FrameworkPropertyMetadataOptions.AffectsRender));

MSDN 文档 https://learn.microsoft.com/en-us/dotnet/api/system.windows.frameworkpropertymetadataoptions?view=netframework-4.7 about FrameworkPropertyMetadataOptions.AffectsRender says

渲染或布局组合的某些方面(除了测量或 排列)受此依赖属性的值更改的影响。

对于其他情况,还有 AffectsMeasure、AffectsArrange 等选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UserControl 依赖属性设计时 的相关文章

随机推荐

  • 媒体播放器响应第二次点击暂停

    使用ViewPager进行图像滑动 每个图像onclick流不同的MP3 应用程序包括 50 个页面 图像 和 50 个不同的 mp3 所有 mp3 都存储在应用程序本身上 前任 第一页流 MP3 one 第二页流 MP3 two 依此类推
  • IE 打印时 iframe 在底部剪切

    在 IE11 上打印下面的页面时 会剪切底部的 iframe 而不是让它扩展到下一页 我怎样才能防止这种情况并让它打印所有内容 注意 要重现此问题 只需将以下代码粘贴到记事本中并在 IE 中打开即可 div a href h1 Print
  • quill可以限制上传图片的大小吗?

    由于图片较大 响应较慢 所以一定要限制 怎么做 谢谢 var editor new Quill postContent modules toolbar toolbar container theme snow placeholder 不超过
  • 实体框架从 SQL Server 视图返回损坏/交换数据

    我从 SQL Server 中的视图进行简单查询 SELECT PricePerM FROM RealtyStatParent ORDER BY PricePerM 当我在 SQL Management Studio 中执行查询时 我得到了
  • 如何在 docker 中创建和运行 .net Core 控制台应用程序

    我有一个 NET Core 2 1 控制台应用程序 我想在 Docker 映像中运行此控制台应用程序 我是 Docker 新手 只是想弄清楚它 这时候我就有了一个Dockerfile 其灵感来自微软的例子 https learn micro
  • 查找作为 c 中函数的参数接收的整数数组的大小[重复]

    这个问题在这里已经有答案了 我想找到作为参数传递给函数的整数数组的大小 这是我的代码 void getArraySize int arr int len sizeof arr sizeof arr 0 printf Array Length
  • 代号一中的文本屏幕,如何读取文本文件?

    我想向我的 Codename One 应用程序添加帮助屏幕 由于文本比其他字符串更长 我想将其放在单独的文件中并将其添加到应用程序包中 我该怎么做呢 我应该将文本文件放在哪里 以及如何轻松地将其一次性读取到字符串中 我已经知道如何将字符串放
  • 为什么我们要包含 stdlib.h?

    C功能malloc 定义如下stdlib h 如果我们不包含这个文件 它应该会给出一个错误 但是这个代码可以正常工作 但有一点警告 我的问题是 如果malloc 没有这个头文件也可以工作 那么为什么我们需要包含它呢 请帮助澄清我的概念 in
  • 模板专业化:非内联函数定义问题

    以下代码可以正确编译 include
  • ActionScript 属性 - 公共 Getter、受保护的 Setter

    是否有可能拥有一个具有公共 getter 和受保护 setter 的属性 我有以下代码 public class Mob extends Sprite snip private var health Number tried making
  • 有人可以向我解释一下 PHP 中的 pack() 函数吗?

    我想了解更多关于pack PHP 中的函数 https secure php net manual en function pack php https secure php net manual en function pack php
  • 如何在 Qt 中上移选定行

    我有一个QTableView有 3 行和 2 列 这里我使用的是QStandardItemModel 我想在单击 QPushButton 时向上 向下移动一行 如何在中向上 向下移动一行QTableView 感谢您的回复瓦汉乔 我已经尝试过
  • Android 中的 Mifare Ultralight C 身份验证 (2.3.6)

    我正在尝试验证 Mifare Ultralight C ISO IEC 14443 2 和 14443 3 A 型兼容 标签 我使用Android中提供的MifareUltralight transceive 函数发送身份验证命令 我还检查
  • 在 tomcat catalina.properties 中注入环境变量 [Kubernetes]

    我正在使用 kubernetes 进行 Web 应用程序部署 containers name myapp image tomcat8 jre8 latest imagePullPolicy Always env name DATABASE
  • 如何更改 Winforms 中的 TrackBar 刻度颜色?

    我有一个使用轨迹栏的 winforms 应用程序 BackColor 属性可以更改 但这样做会使每个 刻度 的颜色几乎不可见 我没有看到修改 勾号 颜色的显式属性 我是否缺少某些东西或改变蜱虫颜色的方法 TrackBar 是本机 Windo
  • Apollo 2.1 中的多重查询/变更

    我需要一些使用 Apollo 2 1 中新的查询和突变组件的帮助 尤其是多个查询和突变 我有以下问题 我有一个 graphql 请求 该请求取决于之前的 graphql 结果 我该如何处理这个问题 如何在已经有查询的组件中添加两个不同的突变
  • 设置 Linux 中可用物理内存总量的限制

    我知道我应该设置mem MEMORY LIMIT 但我不知道在运行时或启动时该去哪里 以便对操作系统控制的总物理内存设置限制 我正在运行 I O 基准测试 并且我想限制可用的总体物理内存量 我找到了我正在寻找的答案 基本上 设置总可用物理内
  • 关于tinymce的“windowManager.open”方法的“body”参数

    我正在查看这个创建tinyMCE插件的示例 我想做的是打开 弹出窗口 弹出窗口内的内容以编程方式指定 无需在特定 url 加载物理页面 在tinymce容器中添加type file的输入元素 https stackoverflow com
  • GetQueuedCompletionStatus 永远阻塞

    我正在编写一个服务器应用程序 我想使用 IOCompletion 端口 因此我为服务器编写了一个原型 但我遇到了 GetQueuedCompletionStatus 的问题 它永远不会返回 它会阻塞 下面是我的代码 bool CreateS
  • UserControl 依赖属性设计时

    我正在 WPF 中创建一个简单的用户控件 其中包含一个按钮内的 TextBlock