簡體   English   中英

WPF - 設置WebBrowser無法正常工作的代碼可見性

[英]WPF - setting visibility on code behind for a WebBrowser not working

我有兩個元素,WebBrowser和Slider,我試圖隱藏一個並顯示另一個,具體取決於用戶打開的文檔類型,PDF或視頻文件(mp4)。 但是,目前,當我打開PDF文件時,WebBrowser仍然是隱藏的。

在MainWindow.xaml中,我有

<WebBrowser x:Name="PDFView" Width="600" 
                    Height="410" Visibility="{Binding PDFVisible}">
</WebBrowser>

<FFmpegFramework:MediaElement Grid.Row="0" x:Name="MediaElement"
                    Height="400" Background="Gray"  Visibility="{Binding VideoVisible}"/>

在MainWindow.xaml.cs中,我有

else if (fileName.Contains("pdf"))
{

    MainWindowViewModel dataContext = this.DataContext as MainWindowViewModel;
    dataContext.PDFVisible = Visibility.Visible;
    dataContext.VideoVisible = Visibility.Collapsed;

    //PDFView.Navigate("file:///" + fileName);
}
else if (fileName.Contains("mp4"))
{
    MainWindowViewModel dataContext = this.DataContext as MainWindowViewModel;
    dataContext.PDFVisible = Visibility.Collapsed;
    dataContext.VideoVisible = Visibility.Visible;
}

在MainWindowModel.cs中,我有:

public Visibility PDFVisible
{
    get
    {
        return fPDFVisible;
    }
    set
    {
        this.SetProperty<Visibility>(ref fPDFVisible, value);
    }
}

public Visibility VideoVisible
{
    get
    {
        return fVideoVisible;
    }
    set
    {
        this.SetProperty<Visibility>(ref fVideoVisible, value);
    }
}

private Visibility fPDFVisible = Visibility.Collapsed;
private Visibility fVideoVisible = Visibility.Visible;

您在.xaml.cs文件中進行此更改,而不是為什么要創建objects來更改visibility 您可以通過控件名稱直接更改visibility

if (fileName.Contains("pdf"))
{
    PDFView.Visibility = Visibility.Visible;
    MediaElement.Visibility = Visibility.Collapsed;
}
else if (fileName.Contains("mp4"))
{
    PDFView.Visibility = Visibility.Collapsed;
    MediaElement.Visibility = Visibility.Visible;
}

並且不要忘記在綁定中更改“Mode = TwoWay”。 它還將在ViewModel更改屬性

<WebBrowser x:Name="PDFView" Width="600" 
            Height="410" Visibility="{Binding PDFVisible, Mode=TwoWay}" />

<FFmpegFramework:MediaElement Grid.Row="0" x:Name="MediaElement"
                 Height="400" Background="Gray"  Visibility="{Binding VideoVisible, Mode=TwoWay}" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM