public Task When_ProgressRing_Collapsed() => RunOnUIThread.ExecuteAsync(() => { var SUT = new ProgressRing { Visibility = Visibility.Collapsed }; var spacerBorder = new Border { Width = 10, Height = 10, Margin = ThicknessHelper.FromUniformLength(5) }; var root = new Grid { Children = { spacerBorder, SUT } }; root.Measure(new Size(1000, 1000)); Assert.AreEqual(10d + 5d + 5d, root.DesiredSize.Height); });
public UIElementCollection_Insert() { this.InitializeComponent(); Loaded += (snd, e) => { When_Insert_First.Children.Insert(0, new Border { Background = new SolidColorBrush(Color.FromArgb(0xff, 0xff, 0x00, 0x00)), Margin = ThicknessHelper.FromUniformLength(0), }); When_Insert_Middle.Children.Insert(3, new Border { Background = new SolidColorBrush(Color.FromArgb(0xff, 0x00, 0x80, 0x00)), Margin = ThicknessHelper.FromLengths(30, 0, 30, 0), }); When_Insert_Last.Children.Add(new Border { Background = new SolidColorBrush(Color.FromArgb(0xff, 0xa0, 0x00, 0xc0)), Margin = ThicknessHelper.FromLengths(50, 0, 50, 0), }); }; }
public ListView_Explicit_Items() { this.InitializeComponent(); ListView.ItemsSource = Enumerable.Range(0, 30) .Select(i => new ListViewItem { Content = i, Margin = ThicknessHelper.FromUniformLength(5), }) .ToArray(); }
public async Task When_Focused_Element_Scrolled() { var scrollViewer = new ScrollViewer() { Height = 200, Margin = ThicknessHelper.FromUniformLength(30) }; var button = new Button() { Content = "Test", FocusVisualPrimaryThickness = ThicknessHelper.FromUniformLength(10), FocusVisualSecondaryThickness = ThicknessHelper.FromUniformLength(10), }; var topBorder = new Border() { Height = 150, Width = 300, Background = SolidColorBrushHelper.Blue }; var bottomBorder = new Border() { Height = 300, Width = 300, Background = SolidColorBrushHelper.Red }; var stackPanel = new StackPanel() { Children = { topBorder, button, bottomBorder, } }; scrollViewer.Content = stackPanel; TestServices.WindowHelper.WindowContent = scrollViewer; await TestServices.WindowHelper.WaitForIdle(); button.Focus(FocusState.Keyboard); await TestServices.WindowHelper.WaitForIdle(); var visualTree = Uno.UI.Xaml.Core.CoreServices.Instance.ContentRootCoordinator.CoreWindowContentRoot?.VisualTree; var focusVisualLayer = visualTree?.FocusVisualRoot; Assert.IsNotNull(focusVisualLayer); Assert.AreEqual(1, focusVisualLayer.Children.Count); var focusVisual = focusVisualLayer.Children.First(); var transform = focusVisual.TransformToVisual(Windows.UI.Xaml.Window.Current.RootElement); var initialPoint = transform.TransformPoint(default);
public async Task When_TransformToVisual_WithMargin() { FrameworkElement inner = new Border { Width = 100, Height = 100, Background = new SolidColorBrush(Colors.DarkBlue) }; FrameworkElement container = new Border { Child = inner, Margin = ThicknessHelper.FromLengths(1, 3, 5, 7), Padding = ThicknessHelper.FromLengths(11, 13, 17, 19), BorderThickness = ThicknessHelper.FromUniformLength(23), HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Bottom, Background = new SolidColorBrush(Colors.DarkSalmon) }; FrameworkElement outer = new Border { Child = container, Padding = ThicknessHelper.FromUniformLength(8), BorderThickness = ThicknessHelper.FromUniformLength(2), Width = 300, Height = 300, Background = new SolidColorBrush(Colors.MediumSeaGreen) }; TestServices.WindowHelper.WindowContent = outer; await TestServices.WindowHelper.WaitForIdle(); string GetStr(FrameworkElement e) { var positionMatrix = ((MatrixTransform)e.TransformToVisual(outer)).Matrix; return($"{positionMatrix.OffsetX};{positionMatrix.OffsetY};{e.ActualWidth};{e.ActualHeight}"); } var str = $"{GetStr(container)}|{GetStr(inner)}"; Assert.AreEqual("111;105;174;178|145;141;100;100", str); }
private void HookEvents(Grid grid, TextBlock textBlock) { void TapHandler(object snd, TappedRoutedEventArgs evt) { textBlock.Text += $".T({evt.GetPosition(null)})"; evt.Handled = true; } void TapHandler2(object snd, TappedRoutedEventArgs evt) { textBlock.Text += $".t({GetPosition(evt)})"; //evt.Handled = false; } grid.AddHandler(TappedEvent, (TappedEventHandler)TapHandler, false); grid.AddHandler(TappedEvent, (TappedEventHandler)TapHandler2, true); string GetPosition(TappedRoutedEventArgs evt) { var pos = evt.GetPosition(null); return($"{Math.Round(pos.X, 1)}, {Math.Round(pos.Y, 1)}"); } textBlock.Tapped += TapHandler3; void TapHandler3(object sender, TappedRoutedEventArgs evt) { textBlock.Text += $".e({GetPosition(evt)})"; } grid.AddHandler(DoubleTappedEvent, (DoubleTappedEventHandler)DoubleTappedHandler, true); void DoubleTappedHandler(object sender, DoubleTappedRoutedEventArgs e) { textBlock.Text += $".dt"; e.Handled = true; } grid.PointerEntered += (s, e) => { textBlock.Text += "<<"; e.Handled = true; }; grid.PointerExited += (s, e) => textBlock.Text += ">>"; var blue = new SolidColorBrush(Colors.Blue); var white = new SolidColorBrush(Colors.WhiteSmoke); grid.PointerPressed += (s, e) => { textBlock.Text += "_"; grid.BorderBrush = blue; }; grid.PointerReleased += (s, e) => { textBlock.Text += "-"; grid.BorderBrush = white; }; grid.BorderBrush = white; grid.BorderThickness = ThicknessHelper.FromUniformLength(3.5); grid.GotFocus += (s, e) => textBlock.Text += ".F"; grid.LostFocus += (s, e) => textBlock.Text += ".f"; grid.KeyDown += (s, e) => { textBlock.Text += ".K"; if (e.Key == Windows.System.VirtualKey.E) { e.Handled = true; } }; grid.KeyUp += (s, e) => { textBlock.Text += ".k"; if (e.Key == Windows.System.VirtualKey.E) { e.Handled = true; } }; }
private async Task LoginReddit() { try { App.JsonClient = new HttpClient(); App.JsonClient.BaseAddress = new Uri("http://www.reddit.com/api/"); Dictionary <string, string> values = new Dictionary <string, string>(); values.Add("api_type", "json"); values.Add("user", accountSettings.UserName); values.Add("passwd", accountSettings.Password); FormUrlEncodedContent content = new FormUrlEncodedContent(values); var response = await App.JsonClient.PostAsync("login/" + accountSettings.UserName, content); var stream = response.EnsureSuccessStatusCode().Content.ContentReadStream; DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(LoginResponse)); var data = (LoginResponse)deserializer.ReadObject(stream); if (data.json.errors.Count == 0) { App.modhash = data.json.data.modhash; App.cookie = data.json.data.cookie; App.isLoggedIn = true; App.Subreddits = new RedditCollection(App.isLoggedIn); App.Settings["UserName"] = accountSettings.UserName; if (accountSettings.SavePassword) { bool passwordSet = false; try { var passwords = App.PasswordVault.FindAllByResource("redditMetro"); // check and see if the user's password is already stored, if it is, lets update the password foreach (var pass in passwords) { if (pass.UserName == accountSettings.UserName) { pass.Password = accountSettings.Password; passwordSet = true; } } } catch (Exception) { // user hasn't logged in before...ignore exception and store the password } // new user, so we'll add a new password cred to the store if (!passwordSet) { App.PasswordVault.Add(new PasswordCredential("redditMetro", accountSettings.UserName, accountSettings.Password)); } App.Settings["SavePassword"] = accountSettings.SavePassword; } else { // user no longer wants us to store their password, so we remove it from the password vault try { var passwords = App.PasswordVault.FindAllByResource("redditMetro"); foreach (var pass in passwords) { if (pass.UserName == accountSettings.UserName) { App.PasswordVault.Remove(pass); } } } catch (Exception) { //user doesn't have a password stored, ignore } } } else { foreach (string s in data.json.errors) { accountSettings.ErrorMessage += s + ". "; } accountSettings.Margin = ThicknessHelper.FromUniformLength(0); } } catch (Exception) { // help! } }
public void AccountCommandHandler(IUICommand command) { accountSettings.Margin = ThicknessHelper.FromUniformLength(0); }