【问题标题】:Silverlight simple binding / dependancy propertySilverlight 简单绑定/依赖属性
【发布时间】:2011-07-23 11:34:42
【问题描述】:

我刚刚开始在 Silverlight 中进行开发,我有一个日历控件,可以显示每一天的详细信息。

日历中的文本保存在许多文本块中,对于某些浏览器,文本大小可能太大,所以我想在“用户控件”上有一个滑块控件,允许用户调整字体大小。

我正在通过 c# 代码构建日历,所以我的问题是.. 将其“连接”起来的最佳方法是什么。我猜这将是这些选项之一。

  1. 将事件添加到 ValueChanged 的​​滑块控件,然后遍历所有 TextBlock,将字体大小设置为新大小。这似乎是冗长的。

  2. 也许使用附加到每个 TextBlock 的“样式”,然后只需更改“样式”的 FontSize .. ??也许吧?

  3. 使用“绑定”和“依赖属性”。我已经对此进行了研究,这似乎是这样做的方法,但我找不到将值从一个控件传递给多个其他控件的示例。也许我错过了什么。

我可以很容易地执行选项 1,但我想了解执行此操作的其他方法。

谢谢 丰富。

【问题讨论】:

    标签: c# .net silverlight dependency-properties


    【解决方案1】:

    解决此问题的一种方法是不使用固定大小,而是根据内容调整所有内容。 that way the control will get bigger when a larger font size is selected.就像 TextBlock 一样。

    【讨论】:

    • 是的,这样做的一种方法是允许他们指定字体大小并允许控件相应地调整大小。
    • 控件已经自动调整大小以适应屏幕,我明白你的意思是允许文本自动重新调整大小,但日历中显示的文本有时最好以小字体查看看到那天有什么东西,但随后展开以显示细节。这对我来说更像是一个学习的东西,虽然我意识到你可以自动调整字体,但它不适用于这种情况。无论如何感谢您的回复。
    • 您好 Erno,感谢您的回复,但我允许用户重新调整文本大小的原因是某些屏幕要小得多,但具有相同的分辨率等,很高兴允许用户设置他们喜欢的文本大小。此外,正如您可能从上面看到的,这对我来说是全新的,所以我很想学习正确的绑定方法等,以便我可以在未来的项目中使用它。 PS。我最初将此评论包含在我的“答案”中,但被要求将其拆分。很抱歉,如果它令人困惑。
    • 这仍然很复杂。只需绑定 Window 或 UserControl 的字体大小,所有子控件都会随之调整大小。
    • 我不确定它是否“复杂”,它只是三行代码,它允许我确定字体滑块影响哪些控件。使用您的方法, UserControl 上的所有控件都将调整其字体大小,这不是我的目标。我只想调整出现在日历中的事件详细信息文本的大小。我不想调整按钮或字体滑块本身的文本大小。
    【解决方案2】:

    我现在实际上已经使用选项 3 完成了这项工作,我很满意,它非常简单,但似乎几乎没有关于它的文档(也许我正在寻找错误的东西)。

    这就像添加几行一样简单......

            Binding bind = new Binding("Value");
            bind.Source = FontSlider;
    

    对于我想将 FontSlider 的“值”应用到的每个控件。我这样做...

            MyTextBlock.SetBinding(TextBlock.FontSizeProperty,bind);
    

    简单。

    干杯 丰富。

    【讨论】:

    • 本部分用于解答。请留下评论或编辑您的问题。
    • 我选择了“回答我自己的问题”选项。在该回复中,我向其他人解释了为什么我自己回答了这个问题,并概述了我正在寻找的答案。
    • 您是否希望我将答案/评论分成两个单独的帖子?我是新手,所以不太清楚它是如何工作的。
    • 是的,请将其拆分为评论和答案。这样,如果其他人出现并且没有阅读 整个 帖子(如我),他们将不会再次标记它。谢谢。 :)
    猜你喜欢
    • 2011-07-29
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 2011-03-24
    • 2016-01-22
    • 2012-11-08
    相关资源
    最近更新 更多