第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

無(wú)法在 WPF XAML 中轉(zhuǎn)換對(duì)象

無(wú)法在 WPF XAML 中轉(zhuǎn)換對(duì)象

C#
不負(fù)相思意 2023-07-09 10:25:03
我正在嘗試從 TextBox 的上下文綁定到 WebBrowser 組件。即使調(diào)試成功,XamlDesign 也會(huì)返回 InvalidCastException 錯(cuò)誤。有人可以幫我解決這個(gè)問(wèn)題嗎?我的WPF項(xiàng)目基于示例項(xiàng)目(https://www.codeproject.com/Articles/1097390/Displaying-HTML-in-a-WPF-RichTextBox),下載的項(xiàng)目也返回相同的錯(cuò)誤。我的WPF項(xiàng)目中的代碼如下:主窗口.xaml<Window x:Class="Wpf_HTML_display.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"        xmlns:local="clr-namespace:Wpf_HTML_display"        mc:Ignorable="d"        Height="1176" Width="1920" WindowState="Maximized"><Canvas>    <TextBox x:Name="srcHTML" Height="292" Width="1753" AcceptsReturn="True">&lt;p&gt;&lt;/p&gt;</TextBox>    <WebBrowser x:Name="WebBrowser1" local:WebBrowserBehavior.Body="{Binding ElementName=srcHTML, Path=Text}"  Height="838" Width="1743" Canvas.Left="10" Canvas.Top="297" /></Canvas></Window>WebBrowserBehavior 類public class WebBrowserBehavior{    public static readonly DependencyProperty BodyProperty =        DependencyProperty.RegisterAttached("Body", typeof(string), typeof(WebBrowserBehavior),        new PropertyMetadata(OnChanged));    public static string GetBody(DependencyObject dependencyObject)    {        return (string)dependencyObject.GetValue(BodyProperty);    }    public static void SetBody(DependencyObject dependencyObject, string body)    {        dependencyObject.SetValue(BodyProperty, body);    }    private static void OnChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) =>        ((WebBrowser)d).NavigateToString((string)e.NewValue);}XamlDesign 返回:Unable to cast object of type 'Microsoft.VisualStudio.DesignTools.WpfDesigner.InstanceBuilders.HwndHostInstance' to type 'System.Windows.Controls.WebBrowser'.
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

發(fā)生這種情況是因?yàn)闃?gòu)造函數(shù)或加載的事件或InitializeComponent需要一些數(shù)據(jù)(一些基本數(shù)據(jù)來(lái)加載控件布局。您可以檢查異常的 stackstrace,它都是關(guān)于類中的內(nèi)容UIElement并生成要在窗口上顯示的控件),而這些數(shù)據(jù)在設(shè)計(jì)時(shí)不存在時(shí)間。有時(shí),設(shè)計(jì)器無(wú)法傳遞有關(guān)自定義綁定表達(dá)式的正確信息。


在這種情況下,在準(zhǔn)備好處理字符串或內(nèi)容OnChanged之前被調(diào)用。WebBrowser


簡(jiǎn)單的解決方案是最初保持TextBox為空,然后從后面的代碼中賦值:


srcHTML.Text = @"&lt;p&gt;&lt;/p&gt;";

將一些驗(yàn)證OnChanged放入WebBrowserBehavior:


if (!string.IsNullOrEmpty((string)e.NewValue))

{

    ((WebBrowser)d).NavigateToString((string)e.NewValue);

}

else

{

    // CODE TO CLEAR CONTENT

}

簡(jiǎn)而言之,就是讓所有控件先加載再執(zhí)行操作。


已測(cè)試并工作。

http://img1.sycdn.imooc.com//64aa1aa600010d1303240483.jpg

查看完整回答
反對(duì) 回復(fù) 2023-07-09
  • 1 回答
  • 0 關(guān)注
  • 250 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)