Winform和WPF窗口边框

时间:2012-12-20 18:35:03

标签: c# wpf winforms border

  

可能重复:
  Change the style of WinForm border?
  Form border size and color

好的,我正在重写这个问题https://stackoverflow.com/questions/13976546/form-border-size-and-color,不知道他们为何关闭了它。我想知道如何更改窗体(WINFORM)和WPF窗口的边框大小和颜色。我正在使用固定工具窗口作为边框类型。我也隐藏了按钮(最小化 - 最大化 - 关闭)。但边框仍然很厚,我不想有窗口主题,但黑色边框。有人知道如何实现这个吗?我不需要调整大小。

一些注意事项:

  • 解决方案需要在Winform和WPF中都有用。
  • 窗口或表格需要可移动。
  • 我想为我的应用更改Window OS边框的颜色和大小。但我知道它使用的是Windows API而且很难。

如果你不理解,不要投反对票,只要问一下。

谢谢!

3 个答案:

答案 0 :(得分:0)

.FormBorderStyle = None应该这样做。

答案 1 :(得分:0)

你可能想要这样的东西吗?您需要删除所有“Windows样式”,然后使用例如Border元素作为窗口的容器来自定义它。希望这会有所帮助。

<Window x:Class="YourNamespace.YourWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Width="800"
        Height="600"       
        WindowStartupLocation="CenterScreen"
        WindowStyle="None"
        Background="Transparent"
        ShowInTaskbar="True"
        AllowsTransparency="True">
    <Border CornerRadius="5"
            BorderBrush="#FFAAAAAA"
            BorderThickness="1">
        <Border.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#DD000000" Offset="1"/>
                <GradientStop Color="#DD333333" Offset="0.50"/>
                <GradientStop Color="#DD393939" Offset="0.49"/>
                <GradientStop Color="#DD666666"/>
            </LinearGradientBrush>
        </Border.Background>
        <Grid>
            <TextBlock Foreground="White" FontWeight="Bold" Text="Hello World!" FontSize="16"/>
        </Grid>
    </Border>
</Window>

答案 2 :(得分:0)

WinForms和WPF都没有好的解决方案。所以你的问题不是真正的问题。

您获得所需内容的唯一方法是自己绘制边框并自行处理调整大小/移动。

但是,所有这些操作在WPF和WinForms之间都是不同的。他们可以在两者中完成。但两者都有所不同。所以你的问题没有一个答案。

此外,如果你真的展示了你曾尝试过的东西,你可能会对人们(而不是那么多的downvotes)进一步了解。你是否按特定方式遇到障碍?或者你是否要求我们为你集思广益?