[英]IValueConverter calculate new size for TextBlock
我正在嘗試使用IValueConverter來計算TextBlock的新寬度,具體取決於網格上的寬度。 但是我總是會遇到這樣的異常:
PresentationFramework.dll中發生了類型為'System.Windows.Markup.XamlParseException'的未處理異常。其他信息:'在'System.Windows.Markup.StaticResourceHolder'上提供值引發了異常。 行號“ 264”和行位置“ 76”。
我將CalMeetingSize縮減為所有內容,但仍然收到錯誤。 所以我認為我在xml中做錯了什么? 有人可以給我提示嗎?
<Grid x:Name="CalBackGround" Margin="163,30,0,0">
...
<TextBlock Height="18" Text="{Binding subject}"
Width="{Binding Path=Width,
ElementName=CalBackGround,
Converter={StaticResource CalMeetingSizeKey}}"
/>
...
<Window.Resources>
<local:CalMeetingSize x:Key="CalMeetingSizeKey"/>
</Window.Resources>
...
public class CalMeetingSize : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return 200;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
您需要綁定到CalBackGround的ActualWidth
屬性,而不是Width
。
檢查是否在XAML中首次使用Window之前聲明了Window.Resources,以便知道它。 添加資源后,在使用它之前也應一次構建您的應用程序,這有時會幫助解決構建錯誤
您也不能綁定到元素的Width
,而必須綁定到ActualWidth
。 寬度已初始化為NaN
,在這里無法使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.