【问题标题】:Catastrophic error while setting dependency property设置依赖属性时发生灾难性错误
【发布时间】:2012-08-06 22:39:11
【问题描述】:

我在将依赖属性设置为 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

提前谢谢你:)

【问题讨论】:

  • ActualWidth 属性不是要设置的,它是只读的
  • 也许你应该把x:Name="overflowControl1"RichTextBlockOverflow 而不是DataTemplate
  • 看起来 tmp 为空???但是当 findname 找不到元素时,它应该抛出异常(除了这个名字存在的事实)

标签: c# xaml windows-8


【解决方案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);

【讨论】:

  • 看起来 tmp 为空???但是当 findname 找不到元素时,它应该抛出一个异常(除了这个名字存在的事实)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    相关资源
    最近更新 更多