为什么在TextBlock中选择文本会在WinRT中引发异常

时间:2013-02-28 05:31:35

标签: c# windows-runtime winrt-xaml

以下代码段会引发系统异常。

TextBlock selectionText = new TextBlock();                        
                    selectionText.IsTextSelectionEnabled = true;                        
                    selectionText.Text = "Hello world";                        
                    selectionText.Foreground = new SolidColorBrush(global::Windows.UI.Color.FromArgb(255, 255, 0, 0));
                    selectionText.SelectAll();

我的代码有什么问题?

提前致谢

2 个答案:

答案 0 :(得分:2)

在调用selectionText之前,您应确保显示SelectAll(),即您应将其添加到当前页面内的面板中:

TextBlock selectionText = new TextBlock();
selectionText.IsTextSelectionEnabled = true;
selectionText.Text = "Hello world";
selectionText.Foreground = new SolidColorBrush(global::Windows.UI.Color.FromArgb(255, 255, 0, 0));
MainPanel.Children.Add(selectionText);
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, selectionText.SelectAll);

请注意两项更改:

  • 致电MainPanel.Children.Add()MainPanel是您网页上面板控件的名称。
  • selectionText.SelectAll()通过Dispatcher调用,以确保在调用执行之前selectionText实际上已添加到面板中。

答案 1 :(得分:0)

我的猜测是前景色

Color.FromArgb(255, 255, 0, 0)

第一个数字表示“Alpha”的级别,这意味着透明度。 Windows RT可能无法解决这个问题。

试试这个

Color.FromArgb(0, 255, 0, 0)