RibbonControl在 Minimized情况下实现鼠标在pagecaption上自动下拉,而不用鼠标单击后才下拉,
目前貌似没有发现ribboncontrol自带有这个设置,最简单的方式就是模拟鼠标单击。细心的人应该都知道dev的大部分组合控件都有CalcHitInfo这个方法,该方法能帮你获取指定点即鼠标位置的控件信息,知道这个就简单了,代码如下:
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模拟鼠标左键按下
const int MOUSEEVENTF_LEFTUP = 0x0004; //模拟鼠标左键抬起
private void ribbonControl1_MouseMove(object sender, MouseEventArgs e)
{
var info = ribbonControl1.CalcHitInfo(e.Location);//获取鼠标当前的坐标信息
if (info != null && ribbonControl1.Minimized && info.InPage && info.PageInfo.CalcState() == DevExpress.Utils.Drawing.ObjectState.Hot)//版本没有info.PageInfo属性的话,就用info.Page.PageInfo这个属性
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
}