[英]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.