在WPF中我windowstate设置了初始最大化,结果运行的时候把任务栏盖住了,怎么让它不要盖住任务栏?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WPF中我windowstate设置了初始最大化,结果运行的时候把任务栏盖住了,怎么让它不要盖住任务栏?相关的知识,希望对你有一定的参考价值。

在WPF中我windowstate设置了初始最大化,结果运行的时候把任务栏盖住了,怎么让它不要盖住任务栏?

这个一般是在WindowStyle="None"的情况下出下的。可以设置窗体的最大值
MaxHeight = SystemParameters.WorkArea.Height;
MaxWidth = SystemParameters.WorkArea.Width;
保证窗口不会盖住任务栏。
网上的方法没试过,应该可以用,当时复杂
参考技术A

解决盖住任务栏的问题     这个能帮助你

参考技术B 默认情况下应该不会出现任务栏被遮盖的情况。请查下你是否在窗体设置了WindowStyle="None",此时窗体显示没有任务栏的。默认的是SingleBorderWindow本回答被提问者采纳 参考技术C 我按照你的方法试了,没有遮住任务栏啊。。。只是不能展示其他窗体。 参考技术D 你设置了 TopMost = true?追问

恩,是啊,应该怎么办

WPF 杂记

1,跨屏最大化

单屏幕的时候我们可以设置 WindowState 来使应用最大化

当接多个屏幕的时候,就需要下面这个设置:

        private void FullScreen()
        {
            this.WindowState = WindowState.Normal;
            this.WindowStyle = System.Windows.WindowStyle.None;
            this.ResizeMode = System.Windows.ResizeMode.NoResize;
            this.Left = 0;
            this.Top = 0;
            this.Width = System.Windows.SystemParameters.VirtualScreenWidth;
            this.Height = System.Windows.SystemParameters.VirtualScreenHeight;
        }

或者在 XAML 中

WindowState="Normal" WindowStyle="None" ResizeMode="NoResize" Left="0" Top="0" Height="{x:Static SystemParameters.VirtualScreenHeight}" Width="{x:Static SystemParameters.VirtualScreenWidth}"

 

来自:http://www.cnblogs.com/infly123/p/3818534.html

 

2,动画的暂停、继续、停止

在 XAML 中:

<Button Content="Click Me">
    <Button.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Name="OpacityStoryboard">
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)"
                        From="0" To="1" RepeatBehavior="Forever" AutoReverse="True" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
        <EventTrigger RoutedEvent="UIElement.MouseEnter">
            <PauseStoryboard BeginStoryboardName="OpacityStoryboard" />
        </EventTrigger>
        <EventTrigger RoutedEvent="UIElement.MouseLeave">
            <ResumeStoryboard BeginStoryboardName="OpacityStoryboard" />
        </EventTrigger>
    </Button.Triggers>
</Button>

 

来自:http://www.cnblogs.com/tommy-huang/p/6496748.html

 

在后台代码里,可以使用:

Storyboard myStoryboard = new Storyboard();
myStoryboard.Pause(this);
myStoryboard.Resume(this);

 

但你如果要使用以上代码,一定要注意必须设置:

myStoryboard.Begin(this, true);

 

可以利用 myStoryboard.GetIsPaused(this); 来判断当前动画是否在暂停状态

 

3,窗体对象的操作:

http://www.cnblogs.com/BABLOVE/p/3234035.html

 

 

4,背景透明

AllowsTransparency="True"
Background="Transparent"
WindowStyle="None"

以上是关于在WPF中我windowstate设置了初始最大化,结果运行的时候把任务栏盖住了,怎么让它不要盖住任务栏?的主要内容,如果未能解决你的问题,请参考以下文章

WPF 杂记

wpf 如何启动一个窗口 是最大化的

如何将wpf窗体最小化

WPF中,做一个Button实现,窗口的最大化及其Normal(就像自带的那样)。如何实现?怎么判断当前是不是为窗口

C#创建wpf应用程序,如何不显示标题栏并使窗口全屏?

WPF:即使显式设置 WindowState,窗口也会保持最小化