private void InitializeProperties() { ArrayImage = new ReactiveProperty <WriteableBitmap>( new WriteableBitmap(255, 1, 96.0, 96.0, PixelFormats.Gray8, null) ); var arrayEffect = new Effects.ArrayEffect(); SetArrayData(arrayEffect, ArrayTypes.LeftToRight); ArrayEffect = new ReactiveProperty <Effects.ArrayEffect>(arrayEffect); SelectedArrayType = new ReactiveProperty <ArrayTypes>(ArrayTypes.LeftToRight); SelectedArrayType.Subscribe(v => SetArrayData(ArrayEffect.Value, v)); }
private void SetArrayData(Effects.ArrayEffect effect, ArrayTypes type) { var data = new WriteableBitmap(255, 1, 96.0, 96.0, PixelFormats.Gray8, null); data.WritePixels( new System.Windows.Int32Rect(0, 0, data.PixelWidth, data.PixelHeight), arrayPatterns[(int)type], data.PixelWidth * data.Format.BitsPerPixel, 0 ); effect.Array = new ImageBrush(data); ArrayImage.Value.WritePixels( new System.Windows.Int32Rect(0, 0, data.PixelWidth, data.PixelHeight), arrayPatterns[(int)type], data.PixelWidth * data.Format.BitsPerPixel, 0 ); }