【发布时间】:2011-07-26 21:06:05
【问题描述】:
我创建了一个名为 EllipsisTextBlock 的自定义控件,其 DependencyProperty 旨在接收另一个控件的属性值:
public static readonly DependencyProperty CopyTextBlockWidthProperty =
DependencyProperty.Register("CopyTextBlockWidth", typeof(double), typeof(EllipsisTextBlock),
new PropertyMetadata(0d, null));
在 EllipsisTextBlock 的父 Grid 中,我正在绑定其他控件的属性,如下所示:
<Grid Margin="10,0,0,0" Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MaxHeight="84"/>
<RowDefinition Height="Auto" MaxHeight="72"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*" MaxHeight="120"/>
</Grid.RowDefinitions>
<TextBlock x:Name="tbxTeste" Text="{Binding Title}" FontSize="28" Visibility="Collapsed" Grid.Row="0"></TextBlock>
<extensions:EllipsisTextBlock Text="{Binding Title}" FontSize="28" TextWrapping="Wrap" CopyTextBlockWidth="{Binding Path=ActualWidth, ElementName=tbxTeste}" Grid.Row="0"></extensions:EllipsisTextBlock>
...
发生的情况是 EllipsisTextBlock 的 CopyTextBlockWidth 属性的 Set 从不被调用:
public double CopyTextBlockWidth
{
get { return (double)GetValue(CopyTextBlockWidthProperty); }
set { SetValue(CopyTextBlockWidthProperty, value); }
}
顺便说一下,EllipsisTextBlock 类还有另外两个可以工作的 DependencyProperties。
有什么想法吗?
谢谢
【问题讨论】:
标签: windows-phone-7 silverlight-3.0