さまざまな箇条書き項目のインデント レベルにアクセスしようとしています。だから私は簡単な関数を作成しました:
private float[] findIndentSpacing(TextRange t, int level) {
if(level == 1) {
RulerLevel rl = t.Parent.Ruler.Levels(2);
//bullet must start at 0 on the first level for now
return new float[2] { 0, rl.LeftMargin * Settings.Scaler() };
} else {
RulerLevel rl = t.Parent.Ruler.Levels[level];
return new float[2] { rl.FirstMargin * Settings.Scaler(), rl.LeftMargin * Settings.Scaler() };
}
}
そのため、最初の if ステートメントは回避策です。最初のレベルの LeftMargin は、何らかの理由で常に -2.14748365E+9 を返します。最初のレベルの後にレベルを取得しようとしたところ、実際の値が返されました。そうは言っても、1 つのレベルにアクセスすると、他のすべてのレベルが変化して等しくなります。たとえば、次のようにアクセスしようとするとt.Parent.Ruler.Levels[2].FirstMargin
、何らかの理由t.Parent.Ruler.Levels[3].FirstMargin
で同じになります。LeftMargin も変更されます。
選択、形状、テキストなど、さまざまな方法でルーラー オブジェクトにアクセスしようとしましたが、結果を試すために考えたすべての方法は同じです。
アイデア?
詳細情報: 次のスレッドを読みましたが、読むよりも書くことに重点を置いていますが、問題は似ているように感じます: PowerPoint プログラミング: ルーラー マージン レベルでのインデントが機能しない? http://answers.microsoft.com/en-us/office/forum/office_2007-customize/why-shapetextframerulerlevelsi-cant-set-the-bullet/9eac3e46-b13b-433e-b588-216ead1d9c1a?tab=AllReplies#tabs Iこれを作成しました:ページ=1&tm=1336535132591