簡體   English   中英

如何在代碼隱藏中將FrameworkElement.Width屬性設置為qualifiedDouble的值?

[英]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將字符串轉換為目標類型。 例如, FontSizeConverterLengthConverter上調用內部靜態方法。 (您也可以實例化FontSizeConverter 。)還有GridLength的轉換器,如“4 *”, Width類似“自動”。 或者,就像我說的,你可以創建自己的類來轉換而不用字符串。

對於代碼隱藏, 本文建議直接使用該因子,因此我在上面提供了一個替代示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM