-4

可能重复:
更改 WinForm 边框的样式?
表格边框大小和颜色

好的,我正在重写这个问题https://stackoverflow.com/questions/13976546/form-b ​​order-size-and-color ,不知道他们为什么关闭它。我想知道如何更改表单(WINFORM)和 WPF 窗口的边框大小和颜色。我现在使用 Fixed Tool Window 作为边框类型。我还隐藏了按钮(最小化 - 最大化 - 关闭)。但是边框仍然很厚,我不想有windows主题,而是黑色边框。有人知道如何实施吗?我不需要调整大小。

一些考虑:

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

如果您不理解,请不要投反对票,请询问。

谢谢!

4

3 回答 3

0

.FormBorderStyle = None应该这样做。

于 2012-12-20T18:37:15.430 回答
0

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

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

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

此外,如果你真的展示了你尝试过的东西,你可能会与人们走得更远(而不是那么多的反对票)。您是否以特定方式遇到了障碍?还是您要求我们为您集思广益?

于 2012-12-20T19:29:11.570 回答
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>
于 2012-12-20T18:40:01.570 回答