winforms VB.NET中的TabControl对齐问题

cld4siwp  于 2023-03-03  发布在  .NET
关注(0)|答案(2)|浏览(194)

我在VB.NET中遇到一个左对齐TabControl的奇怪行为。屏幕截图:

我想要的是有标签字面上相同的方式,他们将是如果旋转90度向左。
这和我没有使用标准的XP主题有什么关系吗?有什么解决方案可以让它工作吗?(即使很难,但我不想要一个风格迥异的控件,我希望程序看起来一致)
谢谢!

    • 大团圆结局**

ac1kyiln

ac1kyiln1#

好了,我解决了这个问题,如果其他人也有同样的问题,用this control吧,它是MIT授权免费的,作者截图:

注意,作者做了两个控件。我的建议是:第二个对cleartype的支持不正确(它在子像素着色后旋转),但是它更容易使用,并且有更好的填充控制。

EDIT如果您使用C++并且需要它,那么有一种方法。结果图片:alt text http://www.codeguru.com/dbfiles/get_image.php?id=6385&lbl=CXPTABCTRL_GIF&ds=20040309

作者非常描述了他是如何做到这一点的,这是很好的,例子:

(来源:codeguru.com

**This**是文章的链接。

另一个非常好的方法是SkyBound的多用途VisualStyles组件。看起来二进制文件是免费的,但源代码不是,非常公平的交易。我稍后会检查它,但如果你需要一些VisualStyles bug修复,它似乎是一个选择。

(来源:skybound.ca
作者:

  • 最重要的是,它可以安静、高效、自动地消除XP主题的错误。但它也提供了一组简单的类,您可以使用这些类通过Windows XP主题API绘制自己的控件。*

检查作者提供的this.more
问题解决!!=D

ulmd4ohb

ulmd4ohb2#

是的,这是选项卡控件的视觉样式呈现器中的一个错误。看起来你已经找到了替代品。另一个影响较小的方法是选择性地禁用控件的视觉样式。它将恢复为战舰灰色,正确地绘制垂直选项卡。选项卡页面内容仍将正确呈现。

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class FixedTabControl : TabControl {
  [DllImportAttribute("uxtheme.dll")]
  private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);

  protected override void OnHandleCreated(EventArgs e) {
    SetWindowTheme(this.Handle, "", "");
    base.OnHandleCreated(e);
  }
}

相关问题