1

私の Windows Phone 8.1 アプリケーションには、ハイパーリンクを含む RichTextBlock があります。ハイパーリンクのクリック イベントにコード ブロックを追加しました。問題は、ハイパーリンクをクリックするたびに、'Access Violation' 例外でアプリケーションがクラッシュすることです。これは、キーボードが表示されている場合にのみ発生します。キーボードが辞任した場合、例外は発生しません。また、これは WP8.1 デバイスでのみ発生し、W10 デバイスでは発生しません。以下は私のコードです。

XAML

<StackPanel>
    <RichTextBlock FontSize="40" x:Name="rtb"/>
    <TextBox x:Name="tb"/>
</StackPanel>

コードビハインド

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    rtb.Blocks.Add(ContentForRichTextBox("9910918444"));
}

これは、RichTextBox のコンテンツを作成する方法です

public Paragraph ContentForRichTextBox(string plainString)
{
    Paragraph richContent = new Paragraph();
    try
    {
        string[] plainStringSplit = plainString.Split(' ');
        foreach (var word in plainStringSplit)
        {
            var number = new Hyperlink();
            number.Foreground = new SolidColorBrush(Colors.DarkBlue);
            number.Inlines.Add(new Run { Text = word });
            number.Click += (s, e) =>
            {
                try
                {
                    Windows.ApplicationModel.Calls.PhoneCallManager.ShowPhoneCallUI(word, "Some dude");
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine("Exception HelperMethod   number.Click : " + ex.ToString());
                }
            };
            richContent.Inlines.Add(number);

            //add a space
            if (plainStringSplit.Last() != word)
            {
                richContent.Inlines.Add(new Run { Text = " " });
            }
        }
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine("Exception HelperMethod ContentForRichTextBox : " + ex.ToString());
    }
    return richContent;
}

ハイパーリンクをクリックして TextBox にフォーカスがあると、例外が発生してアプリケーションがクラッシュします。

The program '[2992] App5.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.

どんな助けでも大歓迎です。

4

1 に答える 1