爲wpf應用程序定義自定義資源主題時,我可以設置寬度/高度等......我如何找到這些屬性的默認值(即在框架中提供的控件中使用的值) ?WPF控件默認大小
3
A
回答
3
FrameworkElements的默認寬度和高度爲Double.NaN
。如果您沒有指定不同的大小,那麼WPF控件會自動調整大小以嘗試適合其內容,容器或兩者。
6
WPF控件通常不包含任何種類的默認大小。 WPF的一個主要功能點是除非您指定大小,否則所有內容都會動態調整大小。
如果您確實想測量控件在給定無限空間時想要擁有的空間量,則可以創建它,使用大小爲+ infinity,+ infinity的方式調用Measure,然後選中DesiredSize。對於大多數控制,這會給你控制所需的最小尺寸。如果您在Measure中給出了固定大小,則某些控件將返回它們想要的尺寸範圍內的所有空間(例如Grid,TextBox,Button ...)。有些控件只能對其內容進行調整,所以他們會告訴你他們不需要空間(例如,StackPanel)。
所以,你必須問自己,爲什麼你甚至會想到WPF中的默認大小的概念,當幾乎所有的控件都做出來,以便它們根據它們的設置來調整它們的容量或大小。你想測量的主要是文本,你可以用上面的技巧來處理TextBlock或圖像等項目。
編輯:查詢任何的DependencyProperty的默認值,使用屬性的元數據:
double defaultWidth = double.NaN;
PropertyMetadata widthMeta = TextBlock.WidthProperty.DefaultMetadata;
if (widthMeta != null && widthMeta.DefaultValue is double)
defaultWidth = widthDefault.DefaultValue;
要重置的DependencyProperty爲它的默認值,調用的DependencyObject的ClearValue:
MyTextBlock.ClearValue(TextBlock.WidthProperty);
要檢查本地設定值:
if (MyTextBlock.ReadLocalValue(TtextBlock.WidthProperty) != DependencyProperty.UnsetValue)
相關問題
- 1. 默認大小
- 2. 默認大小
- 3. WPF綁定控件大小
- 4. SystemIcons默認大小
- 5. 自定義WPF控件的默認值
- 6. 小容器大小的WPF控件
- 7. 如何更改自定義控件的默認大小
- 8. 更改Netbeans中Swing控件的默認字體大小
- 9. 將控件的大小重置爲其默認值
- 10. .NET Compact Framework:將默認大小定義爲自定義控件
- 11. TinyMCE默認字體大小
- 12. ERLANG - 默認浮點大小
- 13. 增加默認大小
- 14. Blocking collection的默認大小
- 15. Google圖表默認大小
- 16. Vimeo默認視頻大小
- 17. 默認UITableViewCellStyleSubtitle字體大小?
- 18. iterm2默認窗口大小
- 19. 上傳期間文件大小超過默認大小
- 20. 自動調整大小WPF控件
- 21. WPF:自動控件大小調整
- 22. 獲取WPF控件的當前大小
- 23. WPF無法調整控件的大小
- 24. WPF - 圖像控件實際大小
- 25. Wpf控件的大小在wpf中變得很小/模糊Viewbox
- 26. Wpf控制大小內容?
- 27. 如何在WPF中設置新窗口的默認大小?
- 28. WPF運行對象的默認字體大小?
- 29. 熱點默認最大堆大小
- 30. 調整WPF控件大小以適應窗口大小
好的我同意你的答案。然而那不是我真正想要的。我最近有一個問題與我的主題,因爲DatePicker包含按鈕。如果我改變了ressourceDictionary中按鈕控件的寬度,它也會影響我的派生控件。 – fabien
所以你實際上在尋找一種方法來知道寬度是否已經從原始值改變了? –
是的,否則我們可能會遇到意外的結果 – fabien