簡體   English   中英

動態設置Word CustomTaskPane寬度

[英]Setting Word CustomTaskPane Width Dynamically

我有一個VSTO自定義任務窗格。 在我的代碼中,我將寬度設置為306,並且在Word 2010中可以正確顯示所有寬度。但是,在Word 2013中,除非手動拖動以使其更寬,否則窗格的某些豎邊不可見。 請注意,這是同一台PC,因此分辨率不是一個因素。 我覺得如果我只是增加代碼的寬度,我並沒有真正解決真正的問題,所以我想找到一種動態設置寬度的方法。 請注意該控件停靠在右側

myPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;

因此,沒有理由將其部分懸掛在屏幕的側面。 此外,即使我將其停靠在左側,它仍然缺少窗格的右側。

我不確定為什么我什至需要在代碼中設置寬度,我認為它應該采用USerControl設計器中設置的大小,但是如果我不設置代碼的大小,則寬度會更小。 我玩過自動調整大小的東西,但是一無所獲。 我覺得我缺少明顯的東西。 有人可以建議嗎?

另一個附帶的問題是,Word 2013中的自定義控件標題高度比Word 2010大得多。我看不到有任何地方可以更改此設置。

原因可能是因為AFAIK的Office 2013屏幕分辨率默認分辨率為16:9,而Office 2010的默認分辨率為4:3。

我遇到過類似情況(盡管對於PowerPoint),默認分辨率取決於Office 2010還是2013。

因此,基本上,如果您對2010年任務窗格的大小進行硬編碼,我想您將面對現在所面對的事情(我也面對過!)。

您可能會想到動態設置寬度,但是為此您需要做兩件事

  1. 檢查Office版本,可以輕松完成以下操作:

     Microsoft.Office.Interop.Word.Application appVersion = new Microsoft.Office.Interop.Word.Application(); 
  2. 在InitializeComponent()方法中的TaskPane.Designer.cs類中動態更改寬度。

但是問題是您不能在InitializeComponent()方法中添加自定義代碼,否則即使卸載了外接程序,該對象也無法正確處理。 單詞處理的一個額外實例將出現在任務管理器中。

因此,我建議您根據Office 2013中看起來可接受的寬度設置寬度,並希望您無需在Office 2010中拖動任務窗格。

至於第二個問題,我認為這是默認行為。

干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM