【问题标题】:Change the GridLength for DependencyProperty?更改 DependencyProperty 的 GridLength?
【发布时间】:2021-09-10 12:01:22
【问题描述】:

要求GridLength设置为最小值,但如果文本框中的数据增加(文本长度),则应将值从最小值设置为Auto。

//现在

 public static readonly DependencyProperty BoxWidthProperty =
        DependencyProperty.Register("BoxWidth", typeof(GridLength), typeof(ValueBox), new UIPropertyMetadata(new GridLength(80.0)));

// 类似的东西

public static readonly DependencyProperty BoxWidthProperty =
        DependencyProperty.Register("BoxWidth", typeof(GridLength), typeof(ValueBox), new UIPropertyMetadata(new GridLength(80.0,GridUnitType.Auto)));

所以,我尝试将默认 GridLength 值设置为 80,但如果文本长度增加,它应该能够将值设置为 GridUnitType.Auto。

//字段属性

 public GridLength BoxWidth
    {
      get
      {
        return (GridLength)GetValue(BoxWidthProperty);
      }

      set
      {
        SetValue(BoxWidthProperty, value);
      }
    }

【问题讨论】:

  • 只使用网格长度是不可能的。最大和最小尺寸由单独的属性设置:MinHeight、MaxHeight。
  • @EldHasp ,谢谢你的意思。但是,我仍然认为我可能会添加一个额外的属性来设置框的宽度。该领域的任何帮助都更有意义。
  • 如需更具体的答案,我们需要在您的问题中提供更多信息。您在哪个类中声明此属性?如果你完整地展示它的实现,那就更好了。你期望如何使用它,绑定它?

标签: c# wpf dependency-properties


【解决方案1】:

Manav Mehta,你的方法很好。但检查以下网址。 C# WPF - GridLength GridUnitType.Auto
如您所见,当第二个参数为GridUnitType.Auto时,第一个参数不可用。
如果我处于您的情况,我将使用 WPF 提供的默认控件。如ContentControl,不尝试实现MinWidthWidth依赖属性。

我希望你再考虑一件事。在 UX 视图中,如果内容增长,则父控件通常会提供滚动查看器。当父控件随着子控件的增长而增长时,这是一种特殊情况。

【讨论】:

  • 谢谢。我明白什么。我做错了。但是,我仍然没有 UX 视图,因为它主要是用 c# 编码的。所以,我可能会添加一个额外的属性来设置框的宽度。该领域的任何帮助都更有意义。
猜你喜欢
  • 2011-01-04
  • 2016-12-14
  • 1970-01-01
  • 2013-11-02
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
相关资源
最近更新 更多