VSTOアドインでCustomTaskPane にUserControlを埋め込みました。
taskPaneの幅に、UserControlが収まらないのを自動調整はしてくれないので、UserControlのコンストラクタで行おうとしています。
1. と 2. はtaskPaneのWidthがポイント単位、UserControlのWidthはピクセル単位なので、 * 72 / 95 しているのですが、小さすぎるために3. のように比率を掛けるのをやめましたが、それでもまだtaskPaneの幅が小さすぎます。色んなプロパティを足したりしていますが、ぴったり合う組み合わせが見つかりません。
手動で数値を調整すれば済みますが、自動にしたいです。
public partial class UserControl1 : UserControl { int ucWidth; public CustomTaskPane taskPane; public UserControl1() { InitializeComponent(); ucWidth = this.Width; wc = new WebAPI(); app = Globals.ThisAddIn.Application; app.SlideSelectionChanged += App_SlideSelectionChanged; this.Invalidated += (object sender, InvalidateEventArgs e) => { if (taskPane!= null) //1. 小さすぎる //taskPane.Width = ucWidth * 72 / 95; //2. まだ小さい //taskPane.Width = (ucWidth + Padding.Horizontal + Margin.Horizontal) * 72 / 95 - taskPane.Control.Margin.Horizontal - taskPane.Control.Padding.Horizontal; //3. これでも小さい taskPane.Width = (ucWidth + Padding.Horizontal + Margin.Horizontal) - taskPane.Control.Margin.Horizontal - taskPane.Control.Padding.Horizontal;
ucWidth は最初のthis.Widthを保持するためです。
72 / 95 を掛けるのをやめると近い感じなるのが、最大の謎なので、ここを解き明かしたいです。
環境:
.Net Framework 4.6
Visual Studio Community 2019
Office 365(デスクトップ版)
Windows 10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。