具有 Button 风格的 Panel

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ExtCtrls;

type
  TForm2 = class(TForm)
    ImageList1: TImageList;
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TVSPanel = class(TCustomPanel)
  private
  protected
    procedure Paint; override;
  public

end;

var
  Form2: TForm2;

implementation

uses Themes;

{$R *.dfm}

{ TVSPanel }

procedure TVSPanel.Paint;
var
  Details: TThemedElementDetails;
begin
  inherited;
  if ThemeServices.ThemesEnabled then
  begin
    Details := ThemeServices.GetElementDetails(tttBaloonNormal{tbPushButtonHot});   {这里画个按钮处于 Hot 状态下的样子}
    PerformEraseBackground(Self, Canvas.Handle);      {擦除画按钮时的背景}
    ThemeServices.DrawElement(Canvas.Handle, Details, ClientRect);
    ThemeServices.DrawText(Canvas.Handle, Details, Caption, ClientRect,
      DT_EXPANDTABS or DT_VCENTER or DT_CENTER or DT_SINGLELINE, 0);
  end;
end;

procedure TForm2.FormCreate(Sender: TObject);
var
  APanel: TVSPanel;
begin
  APanel := TVSPanel.Create(Application);
  APanel.Left := 100;
  APanel.Top := 100;
  APanel.Width := 200;
  APanel.Height := 30;
  APanel.Caption := ‘具有 Button 风格的 Panel‘;
  APanel.Parent := Self;
end;

end.

参考:http://www.cnblogs.com/key-ok/p/3380535.html

时间: 2024-08-24 03:10:49

具有 Button 风格的 Panel的相关文章

Winform 设置panel容器的背景为pictureBox

1.要实现C# WinForm中的控件与背景的透明,可以通过设置控件的BackColor属性为Transparent,同时设置其父控件.因为在C#中,控件的透明指对父窗体透明.如果不设置Parent属性,那么控件将只对Form透明,显示的时候都会把Form的背景色(默认为Control)重刷一遍作为自己的背景.2.在控件比较多的情况下,可以使用Panel控件,将某一组的控件都放到Panel中,然后只对此panel设置背景透明即可,则其他控件都跟着实现了背景透明.demo: 现有一PictureB

Winform panel的底层为pictureBox然后显示pb为背景

要实现C# WinForm中的控件与背景的透明,可以通过设置控件的BackColor属性为Transparent,同时设置其父控件.因为在C#中,控件的透明指对父窗体透明.如果不设置Parent属性,那么控件将只对Form透明,显示的时候都会把Form的背景色(默认为Control)重刷一遍作为自己的背景. 在控件比较多的情况下,可以使用Panel控件,将某一组的控件都放到Panel中,然后只对此panel设置背景透明即可,则其他控件都跟着实现了背景透明. Demo: 现有一PictureBox

触发按钮改变panel面板上的小圆圈颜色

import javax.swing.*; import java.awt.event.*; import java.awt.*; public class TouChaCol implements ActionListener{ JFrame frame; public static void main(String [] args){ TouChaCol game = new TouChaCol(); game.go(); } public void go(){ frame = new JF

Android-Dialog风格Activity开发

1.设置窗口风格 : ①在Manifest中设置主题属性android:theme="@android:style/Theme.Dialog",或者 Theme.Holo.Dialog. ②在Activity的onCreate方法中设置,必须在setContentView之前调用setTheme(android.R.style.Theme_Holo_Dialog) 使用Theme.Holo.Dialog为Android 4.X风格,效果较佳;而Theme.Dialog风格是2.X风格,

2.4 easyui - panel的使用

<div id="p" class="easyui-panel" title="My Panel"             style="width:500px;height:150px;padding:10px;background:#fafafa;"           data-options="iconCls:'icon-save',closable:true,                    c

jquery animate() stop() finish() 方法使用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery 停止动画 stop的几种用法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

JavaSE Swing程序结构、组件分类及基本规则

{相关信息}1. 程序结构Swing 的程序设计一般可按照以下流程进行:(1)通过 import 引入 swing 包.(2)设置 GUI 的“外观界面风格”.(3)创建顶层容器.(4)创建按钮和标签等组件.(5)将组件添加到顶层容器.(6)在组件周围添加边界.(7)进行事件处理. 2. 组件分类Jcomponent 类派生于 Container 类.并不是 Swing 的所有组件都继承了 JComponent 类,凡是派生于 Container 类的组件都可以作为容器使用.Swing 组件从功

c#多线程总结(纯干货)

线程基础 创建线程 static void Main(string[] args) { Thread t = new Thread(PrintNumbers); t.Start();//线程开始执行 PrintNumbers(); Console.ReadKey(); } static void PrintNumbers() { Console.WriteLine("Starting..."); for (int i = 1; i < 10; i++) { Console.Wri