2012-08-06 88 views
0

将依赖项属性设置为XAML元素时出现问题。 XAML:设置依赖项属性时发生灾难性错误

 <local2:RichTextColumns xmlns:local2="using:App2.Common"> 
      <local2:RichTextColumns.ColumnTemplate> 
       <DataTemplate x:Name="overflowControl1"> 
        <RichTextBlockOverflow Width="1000" Margin="5,0,0,0"/> 
       </DataTemplate> 
      </local2:RichTextColumns.ColumnTemplate> 
      <RichTextBlock Foreground="Black" Width="1000"> 
       <Paragraph> 
       </Paragraph> 
      </RichTextBlock> 
     </local2:RichTextColumns> 

C#

var tmp = (DataTemplate)FindName("overflowControl1"); 
tmp.SetValue(RichTextBlockOverflow.ActualWidthProperty, 100); 

它导致

灾难性故障(从HRESULT异常:0x8000FFFF(E_UNEXPECTED))。

我也使用RichTextBlockOverflow.WidthProperty

预先感谢您试过:)

+1

并不意味着'ActualWidth'要设置的属性,它的只读 – 2012-08-06 22:49:48

+0

也许你应该给'X:NAME =“overflowControl1”'的'RichTextBlockOverflow'不给''的DataTemplate – S3ddi9 2012-08-06 22:51:54

+0

它看起来像TMP是空值 ???但是当findname找不到元素时,它应该抛出一个异常(除了这个名字存在的事实) – 2012-08-07 14:41:24

回答

1

尝试

<local2:RichTextColumns xmlns:local2="using:App2.Common"> 
     <local2:RichTextColumns.ColumnTemplate> 
      <DataTemplate> 
       <RichTextBlockOverflow x:Name="overflowControl1" Width="1000" Margin="5,0,0,0"/> 
      </DataTemplate> 
     </local2:RichTextColumns.ColumnTemplate> 
     <RichTextBlock Foreground="Black" Width="1000"> 
      <Paragraph> 
      </Paragraph> 
     </RichTextBlock> 
    </local2:RichTextColumns> 

C#

var tmp = (RichTextBlockOverflow)FindName("overflowControl1"); 
tmp.SetValue(RichTextBlockOverflow.WidthProperty, 100); 
+0

它看起来像tmp是空的?但是当findname找不到元素时,它应该抛出一个异常(除了这个名字存在的事实之外) – 2012-08-07 14:45:29

0

好找到很好的解决方案。我使用绑定将相同的宽度设置为RichTextBlock和RichTextBlockOverflow。