WebView2 не может быть встроен в область контента TabViewItemC#

Место общения программистов C#
Ответить
Anonymous
 WebView2 не может быть встроен в область контента TabViewItem

Сообщение Anonymous »

Я пытаюсь написать UWP (Win UI2) PDF Viewer Поддерживает несколько вкладок. Я пошел, чтобы выиграть UI2 Tabview Demo < /p>
, чтобы получить полезную демонстрацию Tabview и попытаться отобразить страницу WebView2 в каждой области контента TabViewItem. В этой демонстрации WebView2 создается программно в xaml.cs, не объявляется в файле XAML; Только Tabview объявлен в XAML. Я внес некоторые изменения в демонстрацию в надежде отобразить PDF в области под вкладкой. Однако, с текущим кодом, каждый раз, когда WebView2 создается в xaml.cs, его ширина и высота всегда 0.

Чтобы правильно отобразить его, я должен вручную установить ширину и высоту экземпляра WebView2.

/> Это не то, что я хочу. Как я должен изменить свой код для автоматического отображения области WebView2 под строкой вкладок?














< /code>

функция файла файла < /h4>

using Microsoft.UI.Xaml.Controls;
using System;
using System.Diagnostics;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace TEST
{

public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private async void Tabs_AddTabButtonClick(Microsoft.UI.Xaml.Controls.TabView sender, object args)
{
var openPicker = new FileOpenPicker();
openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
openPicker.FileTypeFilter.Add(".pdf");
// choose single file
StorageFile file = await openPicker.PickSingleFileAsync();

if (file != null)
{
sender.TabItems.Add(CreateNewTVI(file.Name, file.Path));
}

}
private TabViewItem CreateNewTVI(string header, string dataContext)
{
WebView2 TabViewWindow = new WebView2()
{
Source = new Uri($"https://bing.com"),
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Stretch
};
InitializWebView2(TabViewWindow);
var newTab = new TabViewItem()
{
IconSource = new Microsoft.UI.Xaml.Controls.SymbolIconSource()
{
Symbol = Symbol.Placeholder
},
Header = header,
Content = TabViewWindow
};

return newTab;
}
private async void InitializWebView2(WebView2 TabViewWindow)
{
try
{
// Attempt to initialize WebView2
await TabViewWindow.EnsureCoreWebView2Async();
}
catch (Exception ex)
{
// Handle the case where WebView2 initialization fails
// You can log the error or show a message to the user
Debug.WriteLine($"WebView2 initialization failed: {ex.Message}");
}
}
private void Tabs_TabCloseRequested(Microsoft.UI.Xaml.Controls.TabView sender, Microsoft.UI.Xaml.Controls.TabViewTabCloseRequestedEventArgs args)
{
sender.TabItems.Remove(args.Tab);
}
}
}
< /code>

App.xaml






Подробнее здесь: https://stackoverflow.com/questions/796 ... -correctly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»