CefSharp.MinimalExample/CefSharp.MinimalExample.Wpf/Behaviours/HoverLinkBehaviour.cs
amaitland 866e3de796 MainWindow.xaml - simplify static bindings
HoverLinkBehaviour - Always use BeginInvoke unless there's an explicit reason for using a sync action
EnvironmentConverter - Minor inconsistencies
2017-04-10 10:34:08 +10:00

36 lines
1.2 KiB
C#

using CefSharp.Wpf;
using System.Windows;
using System.Windows.Interactivity;
using System;
namespace CefSharp.MinimalExample.Wpf.Behaviours
{
public class HoverLinkBehaviour : Behavior<ChromiumWebBrowser>
{
// Using a DependencyProperty as the backing store for HoverLink. This enables animation, styling, binding, etc...
public static readonly DependencyProperty HoverLinkProperty = DependencyProperty.Register("HoverLink", typeof(string), typeof(HoverLinkBehaviour), new PropertyMetadata(string.Empty));
public string HoverLink
{
get { return (string)GetValue(HoverLinkProperty); }
set { SetValue(HoverLinkProperty, value); }
}
protected override void OnAttached()
{
AssociatedObject.StatusMessage += OnStatusMessageChanged;
}
protected override void OnDetaching()
{
AssociatedObject.StatusMessage -= OnStatusMessageChanged;
}
private void OnStatusMessageChanged(object sender, StatusMessageEventArgs e)
{
var chromiumWebBrowser = sender as ChromiumWebBrowser;
chromiumWebBrowser.Dispatcher.BeginInvoke((Action)(() => HoverLink = e.Value));
}
}
}