Ejemplo n.º 1
0
        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);
            //Set the window style to noactivate.
            var helper = new WindowInteropHelper(this);

            WinApi.SetWindowLong(helper.Handle, WinApi.GwlExstyle, (int)(WinApi.GetWindowLong(helper.Handle, WinApi.GwlExstyle)) | 0x00000080 | 0x00000020);
            PlexWindow.ShiftShadowBehindWindow();
        }
Ejemplo n.º 2
0
        public ShadowWindow(PlexWindow window)
        {
            Opacity = 0;
            InitializeComponent();
            PlexWindow = window;

            Binding renderTransformBinding = new Binding()
            {
                Source = PlexWindow,
                Path   = new PropertyPath("RenderTransform"),
                Mode   = BindingMode.OneWay,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            };

            BindingOperations.SetBinding(this, ShadowWindow.RenderTransformProperty, renderTransformBinding);

            Binding opacityBinding = new Binding()
            {
                Source = PlexWindow,
                Path   = new PropertyPath("Opacity"),
                Mode   = BindingMode.OneWay,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            };

            BindingOperations.SetBinding(ShadowGrid, System.Windows.Controls.Grid.OpacityProperty, opacityBinding);

            Binding shadowOpacityBinding = new Binding()
            {
                Source = PlexWindow,
                Path   = new PropertyPath("ShadowOpacity"),
                Mode   = BindingMode.OneWay,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            };

            BindingOperations.SetBinding(this, ShadowWindow.OpacityProperty, shadowOpacityBinding);

            Binding topmostBinding = new Binding()
            {
                Source = PlexWindow,
                Path   = new PropertyPath("Topmost"),
                Mode   = BindingMode.OneWay,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            };

            BindingOperations.SetBinding(this, ShadowWindow.TopmostProperty, topmostBinding);

            Binding visibilityBinding = new Binding()
            {
                Source = PlexWindow,
                Path   = new PropertyPath("Visibility"),
                Mode   = BindingMode.OneWay,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            };

            BindingOperations.SetBinding(this, ShadowWindow.VisibilityProperty, visibilityBinding);

            Loaded += (sender, e) =>
            {
                PlexWindow.ShiftShadowBehindWindow();
            };

            IsVisibleChanged += (sender, e) =>
            {
                PlexWindow.ShiftShadowBehindWindow();
            };
        }