mirror of https://github.com/cefsharp/CefSharp.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.3 KiB
80 lines
2.3 KiB
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
|
|
namespace CefSharp.Wpf.Example
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for TestWindow.xaml
|
|
/// </summary>
|
|
public partial class SpawnBrowsersWindow : Window
|
|
{
|
|
bool _isRunning;
|
|
bool _requestCancel;
|
|
private const int MAX_SPEED = 1000;
|
|
|
|
public SpawnBrowsersWindow()
|
|
{
|
|
InitializeComponent();
|
|
for (int i = 1; i <= 100; i++)
|
|
{
|
|
itemList.Items.Add("Item " + i);
|
|
}
|
|
}
|
|
|
|
private async void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
if (browserContainer.Content is ChromiumWebBrowser)
|
|
{
|
|
ChromiumWebBrowser oldBrowser = browserContainer.Content as ChromiumWebBrowser;
|
|
browserContainer.Content = null;
|
|
oldBrowser.Dispose();
|
|
}
|
|
await Task.Delay(10);
|
|
|
|
ChromiumWebBrowser browser = new ChromiumWebBrowser()
|
|
{
|
|
Address = "http://www.google.com"
|
|
};
|
|
browserContainer.Content = browser;
|
|
//browser.ExecuteScriptAsync("document.body.innerHTML = '';");
|
|
}
|
|
|
|
private async void Button_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (_isRunning)
|
|
{
|
|
StartStopTest(false);
|
|
}
|
|
else
|
|
{
|
|
StartStopTest(true);
|
|
|
|
for (int i = 0; i < itemList.Items.Count; i++)
|
|
{
|
|
itemList.SelectedIndex = i;
|
|
await Task.Delay((int)(MAX_SPEED * speedSlider.Value));
|
|
if (_requestCancel)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
StartStopTest(false);
|
|
}
|
|
}
|
|
|
|
private void StartStopTest(bool isStart)
|
|
{
|
|
_requestCancel = !isStart;
|
|
_isRunning = isStart;
|
|
btnTest.Content = isStart ? "Cancel" : "Test";
|
|
itemList.IsEnabled = !_isRunning;
|
|
}
|
|
|
|
private void speedSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
|
|
{
|
|
speedLabel.Content = string.Format("{0}ms", (int)(MAX_SPEED * speedSlider.Value));
|
|
}
|
|
}
|
|
}
|