要素ホストを持つC#.Net 4.6にwinformがあります。これは、WPF RichTextBoxを含むユーザーコントロールをホストします。 RichTextBoxからテキストを取得して、winform /アプリケーションの別の場所で使用したいと考えています。私はそれを文字列として使用したいと思います。リッチテキストからテキストを取得wpfコントロールはC#のWinformsでelementhostでホストされています
私はこれを試しました。
var elementHost = this.elementHost1;
var wpfTextBox = (System.Windows.Controls.RichTextBox)elementHost.Child;
string richText = new TextRange(wpfTextBox.Document.ContentStart, wpfTextBox.Document.ContentEnd).Text;
textBox1.Text = richText.ToString();
このエラーは2行目で失敗します。 System.Windows.Controls.RichTextBox ' を入力するための 'SyncfusionWindowsFormsApplication3.UserControl1
'タイプ のオブジェクトをキャストできません''。'
elementHost1でホストされているUserControl1内のRichtextBoxからテキストを取得するにはどうすればよいですか?
リッチテキストボックスを含むusercontrolのUPDATE - XAML。
<UserControl x:Class="SyncfusionWindowsFormsApplication3.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup- compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:SyncfusionWindowsFormsApplication3"
mc:Ignorable="d" Width="1093.598" Height="423.11">
<RichTextBox HorizontalAlignment="Left" Height="404" Margin="14,9,0,0" VerticalAlignment="Top" Width="1070" FontFamily="Arial" FontSize="16" SpellCheck.IsEnabled="True" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" TextChanged="RichTextBox_TextChanged">
<FlowDocument>
<Paragraph>
<Run Text="RichTextBox"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
</UserControl>
「これは、WPF RichTextBoxを含むユーザーコントロールをホストしています。関連性のあるxamlコードの一部を表示できますか? –
elementHostは、RichTextBoxを含むUserControl1をホストします。 winformでWPFコントロールをホストする唯一の方法はUserControl経由であると思ったのですか? –