我想在 WPF 浏览器
控件中展示我的 Flair 并将其调整到尽可能小的尺寸。
XAML:
<Window x:Class="TestProject.MainWindow"
[...]
Title="MainWindow"
MaxHeight="500"
MaxWidth="500"
Loaded="Window_Loaded"
SizeToContent="WidthAndHeight"
Height="86.453"
Width="163.44">
<Grid>
<WebBrowser x:Name="browser"></WebBrowser>
</Grid>
这是我的代码隐藏:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private string CreateHTML()
{
StringBuilder builder = new StringBuilder();
builder.AppendLine("<!DOCTYPE html>");
builder.AppendLine("<html>");
builder.AppendLine("<body>");
builder.AppendLine("<a href=\"http://stackexchange.com/users/5852250\">");
builder.AppendLine("<img src=\"http://stackexchange.com/users/flair/5852250.png?theme=dark\" width=\"208\" height=\"58\" alt=\"profile for Felix D. on Stack Exchange, a network of free, community-driven Q&A sites\" title=\"profile for Felix D. on Stack Exchange, a network of free, community-driven Q&A sites\">");
builder.AppendLine("</a>");
builder.AppendLine("</body>");
builder.AppendLine("<html>");
return builder.ToString();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string htmlString = CreateHTML();
browser.NavigateToString(htmlString);
}
}
我希望浏览器(其内容的行为类似于 SizeToContent="WidthAndHeight"
)。
我还没有找到可行的解决方案。
我嵌入了 Microsoft.mshtml
并试图获取某物。在 browser.Document
之外,但到目前为止我没有取得任何进展。
有人做过某事。相似?
最佳答案
您可以在导航前将浏览器的大小设置为0,0
,然后在文档加载完成后,您可以设置宽度
和高度
对文档的 scrollWidth
和 scrollHeight
的控制:
private void browser_LoadCompleted(object sender, NavigationEventArgs e)
{
browser.Width = ((dynamic)browser.Document).Body.parentElement.scrollWidth;
browser.Height = ((dynamic)browser.Document).Body.parentElement.scrollHeight;
}
private void browser_Navigating(object sender, NavigatingCancelEventArgs e)
{
browser.Width = 0;
browser.Height = 0;
}
注意
1) 该帖子是对根据其 HTML 内容调整 WPF 浏览器大小的答案。如果问题恰恰是显示图像,您可以依赖第一条评论中提到的 Image
控件。
2) 使用 WebBrowser
展示您的才华时控件,您需要通过为 body
标记设置 scroll="no"
属性来关闭滚动。您还需要为 body
标签设置 style=\"padding:0px;margin:0px;\"
。还可以通过为 img
标记设置 style="border:0px;"
以及其他一些 html 和 css 更正来移除图像边框。
3) 在 DPI 设置为 125% 的窗口中,您需要将值乘以 0.8。
关于c# - 将 WPF 浏览器调整为它的 HTML 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40719182/