FieldEQ

FieldEQ class

EQ alanını uygular.

Daha fazlasını öğrenmek için şu adresi ziyaret edin:Alanlarla Çalışmak dokümantasyon makalesi.

public class FieldEQ : Field

yapıcılar

İsimTanım
FieldEQ()Default_Constructor

Özellikleri

İsimTanım
DisplayResult { get; }Görüntülenen alan sonucunu temsil eden metni alır.
End { get; }Alan sonunu temsil eden düğümü alır.
Format { get; }Bir alırFieldFormat Alanın formatlamasına yazılı erişim sağlayan nesne.
IsDirty { get; set; }Belgede yapılan diğer değişiklikler nedeniyle alanın geçerli sonucunun artık doğru (eski) olup olmadığını alır veya ayarlar.
IsLocked { get; set; }Alanın kilitli olup olmadığını alır veya ayarlar (sonucu yeniden hesaplanmamalıdır).
LocaleId { get; set; }Alanın LCID’sini alır veya ayarlar.
Result { get; set; }Alan ayırıcı ile alan sonu arasındaki metni alır veya ayarlar.
Separator { get; }Alan ayırıcıyı temsil eden düğümü alır. Olabilirhükümsüz .
Start { get; }Alanın başlangıcını temsil eden düğümü alır.
virtual Type { get; }Microsoft Word alan türünü alır.

yöntemler

İsimTanım
AsOfficeMath()EQ alanına karşılık gelen Office Math nesnesini döndürür.
GetFieldCode()Alan başlangıcı ile alan ayırıcı (veya ayırıcı yoksa alan sonu) arasındaki metni döndürür. Alt alanların hem alan kodu hem de alan sonucu dahil edilir.
GetFieldCode(bool)Alan başlangıcı ile alan ayırıcı (veya ayırıcı yoksa alan sonu) arasındaki metni döndürür.
Remove()Alanı belgeden kaldırır. Alanın hemen ardından bir düğüm döndürür. Alanın sonu, üst düğümünün son child ‘si ise, üst paragrafını döndürür. Alan zaten kaldırılmışsa şunu döndürür:hükümsüz .
Unlink()Alanın bağlantısını kaldırır.
Update()Alan güncellemesini gerçekleştirir. Alan zaten güncelleniyorsa atar.
Update(bool)Bir alan güncellemesi gerçekleştirir. Alan zaten güncelleniyorsa atar.

Örnekler

EQ alanının Office Math ile nasıl değiştirileceğini gösterir.

Document doc = new Document(MyDir + "Field sample - EQ.docx");
FieldEQ fieldEQ = doc.Range.Fields.OfType<FieldEQ>().First();

OfficeMath officeMath = fieldEQ.AsOfficeMath();

fieldEQ.Start.ParentNode.InsertBefore(officeMath, fieldEQ.Start);
fieldEQ.Remove();

doc.Save(ArtifactsDir + "Field.EQAsOfficeMath.docx");

Çeşitli matematiksel denklemleri görüntülemek için EQ alanının nasıl kullanılacağını gösterir.

public void FieldEQ()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Bir EQ alanı, bir veya daha fazla öğeden oluşan bir matematiksel denklemi görüntüler.
    // Her öğe şu biçimi alır: [anahtar][seçenekler][argümanlar].
    // Bir anahtar ve birden fazla olası seçenek olabilir.
    // Argümanlar, yuvarlak parantezler içine alınmış, virgülle ayrılmış değerler kümesidir.

    // Burada "Kesir"e karşılık gelen "\f" anahtarıyla bir EQ alanı eklemek için bir belge oluşturucu kullanıyoruz.
    // 1 ve 4 değerlerini argüman olarak ileteceğiz ve herhangi bir seçenek kullanmayacağız.
    // Bu alanda payı 1, paydası 4 olan bir kesir görüntülenecektir.
    FieldEQ field = InsertFieldEQ(builder, @"\f(1,4)");

    Assert.AreEqual(@" EQ \f(1,4)", field.GetFieldCode());

    // Bir EQ alanı ardışık olarak yerleştirilmiş birden fazla öğe içerebilir.
    // İç elemanları yerleştirerek elemanları iç içe de yerleştirebiliriz.
    // dış elemanların bağımsız değişken parantezlerinin içinde.
    // Anahtarların tam listesini kullanımlarıyla birlikte burada bulabiliriz:
    // https://blogs.msdn.microsoft.com/murrays/2018/01/23/microsoft-word-eq-field/

     // Aşağıda farklı türde nesneler oluşturmak için kullanabileceğimiz dokuz farklı EQ alan anahtarının uygulamaları bulunmaktadır.
    // 1 - Dizi anahtarı "\a", sola hizalanmış, 2 sütun, 3 nokta yatay ve dikey aralık:
    InsertFieldEQ(builder, @"\a \al \co2 \vs3 \hs3(4x,- 4y,-4x,+ y)");

    // 2 - Köşeli parantez anahtarı "\b", köşeli parantez karakteri "[", içeriği köşeli parantez içine almak için:
    // Çıkışta tamamen bir matris gibi görünecek olan parantezlerin içine bir dizi yerleştirdiğimizi unutmayın.
    InsertFieldEQ(builder, @"\b \bc\[ (\a \al \co3 \vs3 \hs3(1,0,0,0,1,0,0,0,1))");

    // 3 - Yer değiştirme anahtarı "\d", "B" metnini "A"nın 30 boşluk sağına kaydırır ve boşluğu alt çizgi olarak görüntüler:
    InsertFieldEQ(builder, @"A \d \fo30 \li() B");

    // 4 - Çoklu kesirlerden oluşan formül:
    InsertFieldEQ(builder, @"\f(d,dx)(u + v) = \f(du,dx) + \f(dv,dx)");

    // 5 - Toplama sembollü "\i" integral anahtarı:
    InsertFieldEQ(builder, @"\i \su(n=1,5,n)");

    // 6 - Liste anahtarı "\l":
    InsertFieldEQ(builder, @"\l(1,1,2,3,n,8,13)");

    // 7 - X'in küp kökünü görüntüleyen radikal anahtar "\r":
    InsertFieldEQ(builder, @"\r (3,x)");

    // 8 - Alt simge/üst simge geçişi "/s", önce üst simge, sonra alt simge olarak:
    InsertFieldEQ(builder, @"\s \up8(Superscript) Text \s \do8(Subscript)");

    // 9 - Girişin üstünde, altında, solunda ve sağında çizgiler bulunan "\x" kutu anahtarı:
    InsertFieldEQ(builder, @"\x \to \bo \le \ri(5)");

    // Bazı daha karmaşık kombinasyonlar.
    InsertFieldEQ(builder, @"\a \ac \vs1 \co1(lim,n→∞) \b (\f(n,n2 + 12) + \f(n,n2 + 22) + ... + \f(n,n2 + n2))");
    InsertFieldEQ(builder, @"\i (,,  \b(\f(x,x2 + 3x + 2))) \s \up10(2)");
    InsertFieldEQ(builder, @"\i \in( tan x, \s \up2(sec x), \b(\r(3) )\s \up4(t) \s \up7(2)  dt)");

    doc.Save(ArtifactsDir + "Field.EQ.docx");
}

/// <summary>
/// Bir EQ alanı eklemek, argümanlarını ayarlamak ve yeni bir paragraf başlatmak için bir belge oluşturucu kullanın.
/// </summary>
private static FieldEQ InsertFieldEQ(DocumentBuilder builder, string args)
{
    FieldEQ field = (FieldEQ)builder.InsertField(FieldType.FieldEquation, true);
    builder.MoveTo(field.Separator);
    builder.Write(args);
    builder.MoveTo(field.Start.ParentNode);

    builder.InsertParagraph();
    return field;
}

Ayrıca bakınız