Exemple #1
0
        public RatingControlPage()
        {
            this.InitializeComponent();

            TestRatingControl.ValueChanged += TestRatingControl_ValueChanged;

            RatingDarkTheme.PlaceholderValue = 1.5;

            MyRatingReadOnlyTextBlock.Text = "2.2";
            MyRatingReadOnlyWithPlaceholder.PlaceholderValue = 3.3;

            DisabledWithValue.Value = 3;
            DisabledWithPlaceholderValue.PlaceholderValue = 3;

            CustomImages.Value            = 3.0;
            CustomImages.PlaceholderValue = 1.5;

            var imageInfo = new RatingItemImageInfo();

            imageInfo.Image                       = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_set.png"));
            imageInfo.UnsetImage                  = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_unset.png"));;
            imageInfo.PlaceholderImage            = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_placeholder.png"));;
            imageInfo.DisabledImage               = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_disabled.png"));;
            imageInfo.PointerOverImage            = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_mouseoverset.png"));;
            imageInfo.PointerOverPlaceholderImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_mouseoverplaceholder.png"));

            CustomImagesTwo.ItemInfo         = imageInfo;
            CustomImagesTwo.Value            = 3.0;
            CustomImagesTwo.PlaceholderValue = 4.25;

            PointerOverPlaceholderFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverPlaceholderFallbackRating_PointerMoved), true);
            PointerOverFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverFallbackRating_PointerMoved), true);

            PointerOverPlaceholderImageFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverPlaceholderImageFallbackRating_PointerMoved), true);
            PointerOverImageFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverImageFallbackRating_PointerMoved), true);

            ColorFlipButton.Foreground = _tomato;

            RatingBindingSample.DataContext  = CaptionStringBox;
            BindingRatingCaption.DataContext = ColorFlipButton;

            //TODO: Uno Platform - WinUI wraps controls in a "TestFrame" which has some "ambient" features, including the view scaling checkbox
            //var testFrame = Window.Current.Content as TestFrame;
            //DependencyObject checkBox = SearchVisualTree(testFrame, "ViewScalingCheckBox");
            //CheckBox cb = checkBox as CheckBox;
            //FrameDetails.Text = Window.Current.Bounds.ToString() + " " + cb.IsChecked.ToString();

#if !HAS_UNO
            if (ApiInformation.IsTypePresent("Windows.UI.Xaml.Controls.RatingControl"))
            {
                var wuxcRatingControl = new Windows.UI.Xaml.Controls.RatingControl();
                wuxcRatingControl.Name    = "WUXC RatingControl";
                wuxcRatingControl.Caption = "WUXC RatingControl";
                AutomationProperties.SetAutomationId(wuxcRatingControl, "wuxcRatingControl");
                this.mainStackPanel.Children.Add(wuxcRatingControl);
            }
#endif
        }
        public RatingControlPage()
        {
            this.InitializeComponent();

            TestRatingControl.ValueChanged += TestRatingControl_ValueChanged;

            RatingDarkTheme.PlaceholderValue = 1.5;

            MyRatingReadOnlyTextBlock.Text = "2.2";
            MyRatingReadOnlyWithPlaceholder.PlaceholderValue = 3.3;

            DisabledWithValue.Value = 3;
            DisabledWithPlaceholderValue.PlaceholderValue = 3;

            CustomImages.Value            = 3.0;
            CustomImages.PlaceholderValue = 1.5;

            var imageInfo = new RatingItemImageInfo();

            imageInfo.Image                       = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_set.png"));
            imageInfo.UnsetImage                  = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_unset.png"));;
            imageInfo.PlaceholderImage            = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_placeholder.png"));;
            imageInfo.DisabledImage               = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_disabled.png"));;
            imageInfo.PointerOverImage            = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_mouseoverset.png"));;
            imageInfo.PointerOverPlaceholderImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_mouseoverplaceholder.png"));

            CustomImagesTwo.ItemInfo         = imageInfo;
            CustomImagesTwo.Value            = 3.0;
            CustomImagesTwo.PlaceholderValue = 4.25;

            PointerOverPlaceholderFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverPlaceholderFallbackRating_PointerMoved), true);
            PointerOverFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverFallbackRating_PointerMoved), true);

            PointerOverPlaceholderImageFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverPlaceholderImageFallbackRating_PointerMoved), true);
            PointerOverImageFallbackRating.AddHandler(RatingControl.PointerMovedEvent, new PointerEventHandler(PointerOverImageFallbackRating_PointerMoved), true);

            ColorFlipButton.Foreground = _tomato;

            RatingBindingSample.DataContext  = CaptionStringBox;
            BindingRatingCaption.DataContext = ColorFlipButton;

            FrameDetails.Text = Window.Current.Bounds.ToString();

            if (ApiInformation.IsTypePresent("Windows.UI.Xaml.Controls.RatingControl"))
            {
                var wuxcRatingControl = new Windows.UI.Xaml.Controls.RatingControl();
                wuxcRatingControl.Name    = "WUXC RatingControl";
                wuxcRatingControl.Caption = "WUXC RatingControl";
                AutomationProperties.SetAutomationId(wuxcRatingControl, "wuxcRatingControl");
                this.mainStackPanel.Children.Add(wuxcRatingControl);
            }
        }
        public async Task VerifyDefaultsAndBasicSetting()
        {
            RatingControl ratingControl = null;

            RunOnUIThread.Execute(() =>
            {
                ratingControl = new RatingControl();
                Verify.IsNotNull(ratingControl);

                Verify.AreEqual(ratingControl.Caption, "");
                Verify.AreEqual(ratingControl.InitialSetValue, 1);
                Verify.AreEqual(ratingControl.IsClearEnabled, true);
                Verify.AreEqual(ratingControl.IsReadOnly, false);
                Verify.AreEqual(ratingControl.MaxRating, 5);
                Verify.AreEqual(ratingControl.PlaceholderValue, -1);
                Verify.AreEqual(ratingControl.Value, -1);

                // Disabled due to 12359255 reliability issue
                // Verify.IsTrue(ratingControl.ItemInfo is RatingItemFontInfo, "Verify default type of ItemInfo");
                // Verify.IsTrue((ratingControl.ItemInfo as RatingItemFontInfo).Glyph.Equals("\uE735"));

                // Now verify basic setting the value, and reaccessing it:

                ratingControl.Caption          = "Rating API Test Caption";
                ratingControl.InitialSetValue  = 2;
                ratingControl.IsClearEnabled   = false;
                ratingControl.IsReadOnly       = true;
                ratingControl.MaxRating        = 10;
                ratingControl.PlaceholderValue = 3.0;
                ratingControl.Value            = 2.0;

                var imageInfo          = new RatingItemImageInfo();
                imageInfo.Image        = new BitmapImage(new Uri("ms-appx:/Assets/rating_set.png"));
                ratingControl.ItemInfo = imageInfo;
            });


            await TestServices.WindowHelper.WaitForIdle();

            RunOnUIThread.Execute(() =>
            {
                Verify.AreEqual(ratingControl.Caption, "Rating API Test Caption");
                Verify.AreEqual(ratingControl.InitialSetValue, 2);
                Verify.AreEqual(ratingControl.IsClearEnabled, false);
                Verify.AreEqual(ratingControl.IsReadOnly, true);
                Verify.AreEqual(ratingControl.MaxRating, 10);
                Verify.AreEqual(ratingControl.PlaceholderValue, 3.0);
                Verify.AreEqual(ratingControl.Value, 2.0);
                Verify.IsTrue(ratingControl.ItemInfo is RatingItemImageInfo, "Verify default type of ItemInfo [2]");
                Verify.IsTrue(((ratingControl.ItemInfo as RatingItemImageInfo).Image as BitmapImage).UriSource.Equals("ms-appx:/Assets/rating_set.png"));
            });
        }
        private void ChangeCustomImagesTwoType_Click(object sender, RoutedEventArgs e)
        {
            if (CustomImagesTwo.ItemInfo is RatingItemImageInfo)
            {
                var rifi = new RatingItemFontInfo();
                rifi.Glyph                       = "\uEB52";
                rifi.UnsetGlyph                  = "\uEB52";
                rifi.PointerOverGlyph            = "\uEB52";
                rifi.PointerOverPlaceholderGlyph = "\uEB52";
                rifi.DisabledGlyph               = "\uEB52";

                CustomImagesTwo.ItemInfo = rifi;

                DependencyObject obj = FindVisualChildByName(CustomImagesTwo, "RatingBackgroundStackPanel");
                var child            = VisualTreeHelper.GetChild(obj, 0);
                AutomationProperties.SetAutomationId(child, "CustomImagesTwo_FirstTextItem");
                AutomationProperties.SetAccessibilityView(child, Windows.UI.Xaml.Automation.Peers.AccessibilityView.Control);

                CustomImagesTwoLoadedStageTwoCheckBox.IsChecked = true;
            }
            else
            {
                var imageInfo = new RatingItemImageInfo();
                imageInfo.Image                       = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_set.png"));
                imageInfo.UnsetImage                  = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_unset.png"));;
                imageInfo.PlaceholderImage            = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_placeholder.png"));;
                imageInfo.DisabledImage               = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_disabled.png"));;
                imageInfo.PointerOverImage            = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_mouseoverset.png"));;
                imageInfo.PointerOverPlaceholderImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("ms-appx:/Assets/rating_mouseoverplaceholder.png"));

                CustomImagesTwo.ItemInfo = imageInfo;

                DependencyObject obj = FindVisualChildByName(CustomImagesTwo, "RatingBackgroundStackPanel");
                var child            = VisualTreeHelper.GetChild(obj, 0);
                AutomationProperties.SetAutomationId(child, "CustomImagesTwo_FirstImageItem_Again");
                AutomationProperties.SetAccessibilityView(child, Windows.UI.Xaml.Automation.Peers.AccessibilityView.Control);

                CustomImagesTwoLoadedStageThreeCheckBox.IsChecked = true;
            }
        }