2011-03-26 144 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