コード例 #1
0
        private async void RunBitmapUpdaterAsync()
        {
            do
            {
                await _bitmapUpdateRequired.WaitAsync();

                if (_isLoaded)
                {
                    if (_hueRingImage == null)
                    {
                        continue;
                    }

                    if (_containerGrid.ActualHeight <= 2 * (RingThickness + ThumbBorderThickness) ||
                        _containerGrid.ActualWidth <= 2 * (RingThickness + ThumbBorderThickness))
                    {
                        continue;
                    }

                    var hueRingSize = (int)Math.Min(
                        _containerGrid.ActualWidth - 2 * ThumbBorderThickness,
                        _containerGrid.ActualHeight - 2 * ThumbBorderThickness);

                    var wb = new WriteableBitmap(hueRingSize, hueRingSize);
                    await wb.RenderColorPickerHueRingAsync(hueRingSize / 2 - (int)RingThickness);
                    _hueRingImage.Source = wb;
                }
            } while (_isLoaded);
        }