猿问

使用 ItemTemplate 时忽略 WPF Webview 的 IsPrivateNetwork

这种简单的做法很好用


如果我使用的WebView,放IsPrivateNetworkClientServerCapabilityEnabled至true,并加载一个本地网的网站,它会正常加载。


<WPF:WebView Source="http://localnetworkwebsite"  

            NavigationStarting="Wvc_NavigationStarting" 

            NavigationCompleted="Wvc_NavigationCompleted" 

            IsPrivateNetworkClientServerCapabilityEnabled="True" />

这种做法是行不通的


在我的应用程序中,我想同时管理多个网页(如独立浏览器上的选项卡),所以我使用 anItemControl来实例化我需要的 WebView 计数(这个数字并不总是相同)。


<ItemsControl x:Name="ItemsWebview" ItemsSource="{Binding WebviewsDataSource}">


    <ItemsControl.ItemsPanel>

        <ItemsPanelTemplate>

            <Grid></Grid>

        </ItemsPanelTemplate>

    </ItemsControl.ItemsPanel>


    <ItemsControl.ItemTemplate>

        <DataTemplate>


            <!--Item-->

            <WPF:WebView Visibility="{Binding Visibility}" Source="{Binding Source}"  

                            NavigationStarting="Wvc_NavigationStarting" 

                            NavigationCompleted="Wvc_NavigationCompleted" 

                            IsPrivateNetworkClientServerCapabilityEnabled="True" />

            <!--End Item-->


        </DataTemplate>

    </ItemsControl.ItemTemplate>

</ItemsControl>

然后,我更改了Sourceths WebView,并使用 ViewModel 隐藏/使它们可见:


public class WebviewViewModel : INotifyPropertyChanged

{

    public event PropertyChangedEventHandler PropertyChanged;


    public Guid LinkedId { get; set; }


    private System.Windows.Visibility _visibility;

    public Visibility Visibility

    {

        get

        {

            return _visibility;

        }


        set

        {

            _visibility = value;

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Visibility)));

        }

    }



整个事情似乎有效,但仅适用于外部网站,不适用于本地网站。404 NotFound使用这种方式创建 WebView 时,我总是得到本地网络站点的一个,就好像IsPrivateNetworkClientServerCapabilityEnabled被忽略了一样。但是本地站点使用简单的方法。


我在创建后检查了WebViews的状态,IsPrivateNetworkClientServerCapabilityEnabled值仍然是true.


所以...


由于此控件相对较新,因此对我来说这看起来像是一个错误...但是我做错了什么吗?


智慧大石
浏览 203回答 1
1回答
随时随地看视频慕课网APP
我要回答