首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

Visio 縮放操作完整實作:菜單、工具列下拉框與自訂比例支援

     編輯:關於C#

Visio 內建多種縮放命令,開發增益集時需整合選單、工具列下拉框並支援使用者輸入自訂百分比。本文提供完整的 SetZoom 統一入口實作,涵蓋 10 種預設模式與任意比例輸入處理。

UI 元件配置

  • 選單:ToolStripMenuItem 陣列,每項 Click 事件指向同一處理函式。
  • 工具列:ToolStripComboBox (DropDownStyle=DropDown),KeyUp 捕捉 Enter 鍵觸發縮放。

統一縮放入口


private void menu_View_Zoom_Click(object sender, EventArgs e) {
    ToolStripMenuItem item = (ToolStripMenuItem)sender;
    SetZoom(item.Text);
}

private void tsStandard_Zoom_KeyUp(object sender, KeyEventArgs e) {
    if (e.KeyCode == Keys.Enter) SetZoom(tsStandard_Zoom.Text);
}

SetZoom 核心邏輯


private void SetZoom(string zoomText) {
    switch (zoomText) {
        case "400%":  VisApplication.DoCmd((short)VisUICmds.visCmdView400); break;
        case "200%":  VisApplication.DoCmd((short)VisUICmds.visCmdView200); break;
        case "150%":  VisApplication.DoCmd((short)VisUICmds.visCmdView150); break;
        case "100%":  VisApplication.DoCmd((short)VisUICmds.visCmdView100); break;
        case "75%":   VisApplication.DoCmd((short)VisUICmds.visCmdView75); break;
        case "50%":   VisApplication.DoCmd((short)VisUICmds.visCmdView50); break;
        case "上次":  VisApplication.DoCmd((short)VisUICmds.visCmdZoomLast); break;
        case "寬度":  VisApplication.DoCmd((short)VisUICmds.visCmdZoomSingleTile); break;
        case "頁":    VisApplication.DoCmd((short)VisUICmds.visCmdZoomPageWidth); break;
        case "縮放":  VisApplication.DoCmd((short)VisUICmds.visCmdViewCustom); break;
        default:      CustomedSize(zoomText); break;
    }
}

private void CustomedSize(string zoomText) {
    try {
        double zoom = Convert.ToDouble(zoomText.Replace("%", ""));
        this.VisWindow.Zoom = zoom / 100.0;        // Zoom 屬性為小數 (1.0 = 100%)
        this.tsStandard_Zoom.Text = zoom + "%";    // 同步更新工具列顯示
    } catch { /* 忽略非數值輸入 */ }
}

關鍵 VisUICmds 對照

功能命令常數說明
400%visCmdView400固定比例
200%visCmdView200
150%visCmdView150
100%visCmdView100
75%visCmdView75
50%visCmdView50
上次縮放visCmdZoomLast恢復上一次縮放比例
頁面寬度visCmdZoomSingleTile適應單頁寬度
整頁visCmdZoomPageWidth適應整頁
自訂縮放visCmdViewCustom開啟縮放對話框

實作細節提醒

  • VisWindow.Zoom 接受 double(1.0 = 100%),工具列顯示需自行格式化為「xxx%」。
  • 工具列 ToolStripComboBox 設 AutoCompleteMode = SuggestAppend 可提升輸入體驗。
  • 選單項文字需與 switch case 完全一致(含全形/半形),建議用常數定義。

此實作完整對應 Visio 原生縮放體驗,並延伸支援任意比例輸入,可直接整合至增益集專案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved