private void ModifyLayer(Processing.Bitmap.IProcBitmap modify, string windowTitle)
 {
     if (LayerSlider != null &&
         Layers != null &&
         Layers[(int)LayerSlider.Value] != null &&
         Layers[(int)LayerSlider.Value].Bitmap != null)
     {
         var bitmapPreview = new BitmapPreview(modify.Process(Layers[(int)LayerSlider.Value].Bitmap));
         bitmapPreview.ShowReplace = Visibility.Collapsed;
         bitmapPreview.WindowTitle = windowTitle;
         bitmapPreview.Show();
     }
 }
        private void WinSetsButton_Click(object sender, RoutedEventArgs e)
        {
            if (ImageBox.Source == null)
            {
                return;
            }

            var currentBitmapInfo = Layers[(int)LayerSlider.Value];

            //processing image
            var windowSettings = new WindowSettings(currentBitmapInfo.WindowMin, currentBitmapInfo.WindowMax);

            windowSettings.ShowDialog();

            int  newWinMin = windowSettings.WindowMin;
            int  newWinMax = windowSettings.WindowMax;
            bool replace   = windowSettings.Replace;

            var bitmap = ReadDicomFile(currentBitmapInfo.Filename, newWinMin, newWinMax);

            var bitmapPreview = new BitmapPreview(bitmap);

            bitmapPreview.WindowTitle = "Windows Settings: " + newWinMin + " to " + newWinMax;
            if (replace)
            {
                bitmapPreview.ShowReplace = Visibility.Visible;
                bitmapPreview.ShowDialog();
                if (bitmapPreview.Replace)
                {
                    Layers[(int)LayerSlider.Value].Bitmap    = bitmap;
                    Layers[(int)LayerSlider.Value].WindowMin = newWinMin;
                    Layers[(int)LayerSlider.Value].WindowMax = newWinMax;
                }
            }
            else
            {
                bitmapPreview.ShowReplace = Visibility.Collapsed;
                bitmapPreview.Show();
            }
        }