在uwp中更改web视图中的字体大小
我目前正在从事UWP项目,我使用web视图来显示html内容。我希望项目中的内容能够响应屏幕大小。因此,我需要在笔记本电脑大小的屏幕和PC屏幕中为web视图提供不同的字体大小。以下代码是我用于在PC屏幕中显示内容的代码在uwp中更改web视图中的字体大小,uwp,Uwp,我目前正在从事UWP项目,我使用web视图来显示html内容。我希望项目中的内容能够响应屏幕大小。因此,我需要在笔记本电脑大小的屏幕和PC屏幕中为web视图提供不同的字体大小。以下代码是我用于在PC屏幕中显示内容的代码 <StackPanel x:Name="questionItem" HorizontalAlignment="Center" Grid.Row="1" Grid.Column="1" > <WebView Name="webview" Width
<StackPanel x:Name="questionItem" HorizontalAlignment="Center" Grid.Row="1" Grid.Column="1" >
<WebView Name="webview" Width="750" util:WebViewCustomProperties.HtmlString="{Binding CourseName}" ScriptNotify="WebViewT_ScriptNotify" DefaultBackgroundColor="Transparent" />
</StackPanel>
在代码文件后面
if (courseid != null)
{
course.CourseName = "<div style=\"font-size: 25px;VerticalAlignment:Center;font-family:Segoe UI;width: 100%;\">" + course.CourseName + "</div>";
}
if(courseid!=null)
{
course.CourseName=“”+course.CourseName+”;
}
我使用视觉状态为web视图提供了不同的宽度
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState >
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" MinWindowHeight="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="webview.Width" Value="430"/>
</VisualState.Setters>
</VisualState>
<VisualState >
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1280" MinWindowHeight="720"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="webview.Width" Value="750"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
我想做的是给web视图提供两个类似于宽度的字体大小。目前,笔记本电脑和PC屏幕的字体大小都是25px。因此,笔记本电脑屏幕中的内容被切断。如果有人能帮我,我将不胜感激。谢谢
在uwp中更改web视图中的字体大小
您可以使用方法注入javascript
eval函数,并使用以下代码更改html页面上的字体。对于您的场景,您可以监听CoreWindow.SizeChanged
事件,并根据窗口的宽度设置fontsize
例如:
public MainPage()
{
this.InitializeComponent();
MyWebView.DOMContentLoaded += MyWebView_DOMContentLoaded;
Window.Current.CoreWindow.SizeChanged += CoreWindow_SizeChanged;
}
private async void CoreWindow_SizeChanged(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.WindowSizeChangedEventArgs args)
{
if (args.Size.Width == 1280 && isLoaded)
{
await MyWebView.InvokeScriptAsync("eval", new string[] { "document.getElementsByTagName(\"div\")[0].style.fontSize=\"" + 30 + "\";" });
}
}
private bool isLoaded;
private void MyWebView_DOMContentLoaded(WebView sender, WebViewDOMContentLoadedEventArgs args)
{
isLoaded = true;
}
如果有一种方法可以在web视图中修剪文本,那将非常有用。我的意思是在uwp的TextBlock控件中有一个名为TextTriming的属性。同样,如果web视图控件中有一个用于修剪长文本的控件,则可以使用它来代替更改字体大小。谢谢