2011-03-26 241 views
1

我刚刚开始在Silverlight中开发,并且我有一个日历控件,显示每天的详细信息。Silverlight简单绑定/依赖属性

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

我正在通过C#代码构建日历,所以我的问题是......什么是'连线'这个最好的方式。我猜这将是其中一种选择。

  1. 将事件添加到滑块控件的ValueChanged,然后遍历所有TextBlocks,将字体大小设置为新大小。这似乎很啰嗦。

  2. 也许使用附在每个TextBlock上的'Style',然后改变'Style'的FontSize。也许 ?

  3. 使用'绑定'&'依赖属性'。我研究过这一点,而且似乎是这样做的方式,但是我无法找到一个例子,您将一个控件的值传递给其他多个控件。也许我错过了一些东西。

我可以很容易地做选项1,但我想了解这样做的替代方法。

谢谢 丰富。

回答

0

我实际上已经使用了选项3,我很满意,这很简单,但似乎没有文档(可能我正在寻找错误的东西)。

这是因为添加了几行简单...

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

的对,我想应用的FontSlider的“价值”。我每天都这样控制...

 MyTextBlock.SetBinding(TextBlock.FontSizeProperty,bind); 

简单。

干杯 丰富。

+1

这部分是为了解答。请留下评论或编辑您的问题。 – 2011-03-29 12:37:18

+0

我选择了“回答我自己的问题”的选项在回复中,我向另一个人回答了我为什么自己回答了这个问题,并概述了我正在寻找的答案。 – 2011-03-29 17:15:29

+0

你愿意将我的答案/评论分成两个独立的帖子吗?我是新手,所以不知道它是如何工作的。 – 2011-03-29 17:16:12

0

处理此问题的一种方法是不使用固定大小,而是将所有内容设置为其大小。这样,当选择更大的字体大小时,控件将变得更大。就像TextBlock一样。

+0

是的,所以这样做的一种方式是让他们指定字体大小并允许控件相应地调整大小。 – 2011-03-29 11:33:43

+0

这些控件已经自动调整大小以适应屏幕内容,并且我明白了允许文本自动重新调整大小的观点,但是日历中显示的文本有时会以较小的字体更好地查看,以查看该文本中是否存在某些内容在那一天,但后来扩大显示的细节。这对我来说更像是一个学习的东西,虽然我意识到你可以自动调整字体,但在这种情况下不适用。无论如何感谢您的回复。 – 2011-03-29 11:47:36

+0

嗨Erno, 感谢您的回复,但我允许用户重新调整文本大小的原因是,某些屏幕更小,但具有相同的分辨率等,并且很高兴允许用户设置他们的首选字体大小。另外,正如你可能从上面看到的,这对我来说是全新的,所以我很想学习绑定等的正确方法,以便我可以在将来的项目中使用它。 PS:我最初在我的“答案”中包含了这个评论,但被要求将其分开。对不起,如果它很混乱。 – 2011-03-29 17:33:04