您知道如何使 ChromiumBrowser 打开时浏览器大小适合内容吗?现在这个 xaml 位于窗口主体中。当有人单击 MyTextBox 的文本时,ChromiumBrowser 将打开以显示更多信息。
编辑: 如果没有固定的宽度和高度,铬窗口不会显示。
....
<Canvas Panel.ZIndex="99" Visibility="{Binding IsChromiuimVisible, Converter={StaticResource BooleanToVisibilityConverter}, FallbackValue=Collapsed}">
<Popup Placement="Top" PlacementTarget="{Binding ElementName=MyTextBlock}"
IsOpen="{Binding IsChromiumVisible}" PopupAnimation="Fade" AllowsTransparency="True"
MouseEnter="OnMouseEnter" MouseLeave="OnMouseLeave">
<Grid Background="Transparent">
<cefSharp:ChromiumWebBrowser
Width="300" Height="620"
Address="{Binding ChromiumAddress, Mode=TwoWay}">
</cefSharp:ChromiumWebBrowser>
</Grid>
</Popup>
</Canvas>
....
Run Code Online (Sandbox Code Playgroud)
小智 4
我已经通过以下方式解决了将cefSharp浏览器高度适合页面内容的问题:
browser = new ChromiumWebBrowser("https://stackoverflow.com/");
// ... adding to parent's children etc. ...
browser.LoadingStateChanged += async (s, e) =>
{
if (!e.IsLoading) // browser.CanExecuteJavascriptInMainFrame == TRUE !
{
JavascriptResponse response =
await browser.EvaluateScriptAsync(
// GET HEIGHT OF CONTENT
"(function() { " +
" var _docHeight = " +
" (document.height !== undefined) " +
" ? document.height " +
" : document.body.offsetHeight; " +
" " +
" return _docHeight; " +
"} " +
")();");
int docHeight = (int)response.Result;
browser.Dispatcher.Invoke(() => { browser.Height = docHeight + 10; });
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5830 次 |
| 最近记录: |