Я использую ChromiumWebBrowser
, предоставленный библиотекой CefSharp
, чтобы пользователи могли просматривать и взаимодействовать с веб-сайтом из моего приложения C#.
Веб-сайт в настоящее время отображается правильно, и пользователь может полноценно взаимодействовать с ним, как если бы он просматривал его в стандартном веб-браузере.
Теперь я хочу добавить функциональность, позволяющую пользователям увеличивать/уменьшать масштаб при просмотре веб-сайта из моего приложения, но я не уверен, как это сделать... большая часть того, что я нашел в Интернете, похоже, указывает на то, что Я должен использовать атрибут LayoutTransform
тега <Grid>
, а затем тег <ScaleTransform>
в моем XAML
, и я пробовал это, но не могу заставить его работать...
Мой XAML
выглядит следующим образом:
<Grid x:Name="grdBrowserHost" MinHeight="900" Height="Auto" MinWidth="1200" Width="Auto" Margin="0,0,0,0" DockPanel.Dock="Bottom" Grid.ColumnSpan="1" >
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.LayoutTransform>
<ScaleTransform ScaleX="{Binding Path=Value, ElementName=_zoom}" ScaleY="{Binding Path=Value, ElementName=_zoom}" />
</Grid.LayoutTransform>
<cefSharp:ChromiumWebBrowser Name="browser" Height="Auto" Width="Auto" Grid.Row="0" Address="www.google.com" Margin="0,35,-0.2,0" />
</Grid>
Как мне добавить функциональность, позволяющую пользователю увеличивать и уменьшать масштаб содержимого cefSharp:ChromiumWebBrowser ...>
в этом XAML
? В идеале я хочу, чтобы они могли увеличивать/уменьшать масштаб с помощью «Shift+»/«Shift-»/«Shift and Scroll».
У кого-нибудь есть какие-либо предложения или может указать мне на пример того, как это реализовано?
Изменить
Так что мне удалось в некоторой степени реализовать эту функциональность, добавив slider
в графический интерфейс:
<Slider x:Name="slider" Maximum="100" ValueChanged="zoom" HorizontalAlignment="Left" Margin="1177,260,0,0" VerticalAlignment="Top"/>
и используя это для вызова функции, которую я назвал zoom()
-, в которой я установил атрибут browser.ZoomLevel
равным slider.Value
:
public void zoom(object sender, RoutedEventArgs e)
{
browser.ZoomLevel = slider.Value;
}
Тем не менее, в настоящее время это работает, щелкнув объект slider
в графическом интерфейсе и перетащив курсор влево/вправо, но кажется, что при перемещении ползунка масштаб «перескакивает» с одного значения на другое, а не изменяется постепенно/заставляя плавное увеличение/уменьшение вида.
Как заставить дисплей плавно увеличивать/уменьшать масштаб, когда пользователь перемещает ползунок, а не переходить от «обычного вида» к максимальному значению (100)?
Как добавить функцию увеличения/уменьшения масштаба с помощью сочетаний клавиш (например, CTRL+/CTRL-), а не с помощью slider
?