![](/img/trans.png)
[英]How can you set a DynamicResource in code-behind if the target is not a FrameworkElement?
[英]How do you set the FrameworkElement.Width property to the value of a qualifiedDouble, in the code-behind?
我正在嘗試將我的一個控件的width屬性設置為qualifiedDouble,
如MSDN上所述 。
(向下滾動到“XAML值”部分,查看MSDN關於使用qualifiedDouble的信息)
但是,我想知道如何在代碼隱藏中實現這一點,而不是XAML。 我正在創建的UserControl沒有附加XAML,以用於繼承。 所以我必須手動執行所有XAML操作,使用C#中的所有操作。
有誰知道在代碼隱藏中如何實現qualifiedDouble?
多么巧合,我今天早些時候必須這樣做。 合格的雙打最終會根據您提供的單位進行因子轉換,但作為LengthConverter
一部分。
LengthConverter lc = new LengthConverter();
string qualifiedDouble = "10pt";
double converted = lc.ConvertFrom( qualifiedDouble );
備用:
double original = 10.0;
double converted = original * 1.333333333; // px-to-pt conversion
例如,這將把“10pt”變換為13.3333333。 您也可以使用文章提供的轉換因子,但我更喜歡使用上述內容,因為這些因素已構建到類中。
編輯:回應關於字符串的評論......
字符串轉換對於它的用途非常有意義。 他們使用XAML,因為在XAML中表達某些內容比在C#或VB中表達更容易。 在XAML中,所有值都是字符串,因此您自動選擇TypeConverter
將字符串轉換為目標類型。 例如, FontSizeConverter
在LengthConverter
上調用內部靜態方法。 (您也可以實例化FontSizeConverter
。)還有GridLength
的轉換器,如“4 *”, Width
類似“自動”。 或者,就像我說的,你可以創建自己的類來轉換而不用字符串。
對於代碼隱藏, 本文建議直接使用該因子,因此我在上面提供了一個替代示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.