Ovládací prvky obsahu

Ovládací prvky obsahu poskytují způsob, jak navrhovat dokumenty a šablony, které mají tyto funkce:

O ovládacích prvcích obsahu

Ovládací prvky obsahu poskytují uživatelské rozhraní, které je optimalizované pro uživatelský vstup i tisk. Když do dokumentu přidáte ovládací prvek obsahu, označí se ovládací prvek ohraničením, názvem a dočasným textem, který může uživateli poskytnout pokyny. Ohraničení a název ovládacího prvku se nezobrazují ve vytištěných verzích dokumentu.

Pokud například chcete, aby uživatel zadal datum v oddílu dokumentu, můžete do dokumentu přidat ovládací prvek obsahu pro výběr data. Když uživatelé kliknou na ovládací prvek, zobrazí se standardní uživatelské rozhraní pro výběr data. Můžete také nastavit vlastnosti ovládacího prvku pro nastavení místního kalendáře, který se zobrazí, a určit formát data. Jakmile uživatel zvolí datum, uživatelské rozhraní ovládacího prvku je skryté a zobrazí se pouze datum, pokud uživatel vytiskne dokument.

Ovládací prvky obsahu vám také pomůžou udělat toto:

  • Zabrání uživatelům v úpravách nebo odstraňování částí dokumentu. To je užitečné, pokud máte informace v dokumentu nebo šabloně, které by uživatelé měli mít možnost číst, ale ne upravovat, nebo pokud chcete, aby uživatelé mohli upravovat ovládací prvky obsahu, ale ne je odstranit.

  • Svázání částí dokumentu nebo šablony s daty Ovládací prvky obsahu můžete svázat s databázovými poli, spravovanými objekty v rozhraní .NET Framework, elementy XML uloženými v dokumentu a dalšími zdroji dat.

    V projektech na úrovni dokumentu můžete do dokumentu přidat ovládací prvky obsahu v době návrhu nebo v době běhu. V projektech doplňků VSTO můžete přidat ovládací prvky obsahu do libovolného otevřeného dokumentu za běhu. Další informace naleznete v tématu Postupy: Přidání ovládacích prvků obsahu do wordových dokumentů.

Poznámka:

Ovládací prvky obsahu můžete použít pouze v dokumentech uložených ve formátu Open XML. Ovládací prvky obsahu nelze použít v dokumentech uložených ve formátu dokumentu aplikace Word 97–2003 (.doc).

Typy ovládacích prvků obsahu

Do dokumentů můžete přidat devět různých typů ovládacích prvků obsahu. Většina ovládacích prvků obsahu má odpovídající typ v Microsoft.Office.Tools.Word oboru názvů. Můžete také použít obecný ContentControl, který může představovat libovolný z dostupných ovládacích prvků obsahu. Návod, který ukazuje použití jednotlivých dostupných ovládacích prvků obsahu, naleznete v části Návod: Vytvoření šablony pomocí ovládacích prvků obsahu.

Galerie stavebních bloků umožňuje uživatelům vybírat ze seznamu stavebních bloků dokumentů, které se mají vložit do dokumentu. Stavební blok dokumentu je část obsahu, která se vytvořila pro použití vícekrát, například běžnou titulní stránku, formátovanou tabulku nebo záhlaví. Další informace najdete v BuildingBlockGalleryContentControl tomto typu. Další informace o stavebních blocích najdete v tématu Co je nového pro vývojáře ve Wordu 2007.

Zašk.políčko

Zaškrtávací políčko obsahuje uživatelské rozhraní, které představuje binární stav: je zaškrtnuté nebo nezaškrtané.

Na rozdíl od ostatních typů ovládacích prvků obsahu sada Visual Studio Tools for Office runtime neposkytuje konkrétní typ, který představuje ovládací prvek obsahu zaškrtávacího políčka. Jinými slovy, neexistuje žádný CheckBoxContentControl typ. Ovládací prvek obsahu zaškrtávacího políčka ale můžete vytvořit tak, že do dokumentu přidáte obecný ContentControl kód programově. Další informace naleznete v tématu Ovládací prvky obsahu zaškrtávacího políčka v projektech Wordu.

Kombinované pole

Pole se seznamem zobrazí seznam položek, které můžou uživatelé vybrat. Na rozdíl od rozevíracího seznamu umožňuje pole se seznamem uživatelům přidávat vlastní položky. Další informace najdete v ComboBoxContentControl tomto typu.

Volič data

Výběr data poskytuje uživatelské rozhraní kalendáře pro výběr data. Kalendář se zobrazí, když koncový uživatel klikne na šipku rozevíracího seznamu v ovládacím prvku. Můžete použít regionální kalendáře a různé formáty kalendářních dat. Další informace najdete v DatePickerContentControl tomto typu.

V rozevíracím seznamu se zobrazí seznam položek, které můžou uživatelé vybrat. Na rozdíl od pole se seznamem neumožňuje rozevírací seznam uživatelům přidávat ani upravovat položky. Další informace najdete v DropDownListContentControl tomto typu.

Seskupit

Ovládací prvek skupiny definuje chráněnou oblast dokumentu, kterou uživatelé nemůžou upravovat ani odstraňovat. Ovládací prvek skupiny může obsahovat jakékoli položky dokumentu, například text, tabulky, grafiku a další ovládací prvky obsahu. Další informace najdete v GroupContentControl tomto typu.

Obrázek

Ovládací prvek Obrázek zobrazí obrázek. Obrázek můžete zadat v době návrhu nebo v době běhu, nebo můžou uživatelé kliknout na tento ovládací prvek a vybrat obrázek, který chcete vložit do dokumentu. Další informace najdete v PictureContentControl tomto typu.

Formátovaný text

Ovládací prvek RTF obsahuje text nebo jiné položky, jako jsou tabulky, obrázky nebo jiné ovládací prvky obsahu. Další informace najdete v RichTextContentControl tomto typu.

Prostý text

Ovládací prvek prostého textu obsahuje text. Ovládací prvek prostého textu nesmí obsahovat jiné položky, jako jsou tabulky, obrázky nebo jiné ovládací prvky obsahu. Kromě toho má veškerý text v ovládacím prvku prostého textu stejné formátování. Pokud například jedno slovo věty, která je v ovládacím prvku prostého textu, kurzíva je celý text uvnitř ovládacího prvku kurzíva. Další informace najdete v PlainTextContentControl tomto typu.

Obecný ovládací prvek obsahu

Obecný ovládací prvek obsahu je ContentControl objekt, který může představovat libovolný z dostupných typů ovládacích prvků obsahu. Objekt můžete změnit ContentControl tak, aby se pomocí vlastnosti choval jako jiný typ ovládacího prvku Type obsahu. Pokud například vytvoříte ContentControl objekt, který představuje ovládací prvek prostého textu, můžete ho změnit za běhu tak, aby se choval jako pole se seznamem.

Objekty můžete vytvářet ContentControl pouze za běhu, ne v době návrhu. Další informace naleznete v tématu Postupy: Přidání ovládacích prvků obsahu do wordových dokumentů.

Běžné funkce ovládacích prvků obsahu

Většina ovládacích prvků obsahu sdílí sadu členů, které můžete použít k provádění běžných úloh. Následující tabulka popisuje některé úlohy, které můžete provádět pomocí těchto členů.

Pro tento úkol: Postupujte takto:
Získejte nebo nastavte text zobrazený v ovládacím prvku. Použijte vlastnost Text. Poznámka: Tato PictureContentControl vlastnost a ContentControl typy nemají.
Získejte nebo nastavte dočasný text, který se zobrazí v ovládacím prvku, dokud uživatel ovládací prvek neupraví, ovládací prvek se naplní daty ze zdroje dat nebo se odstraní obsah ovládacího prvku. Použijte vlastnost PlaceholderText. Poznámka: Typ PictureContentControl tuto vlastnost nemá.
Získejte nebo nastavte název, který se zobrazí na okraji ovládacího prvku obsahu, když na něj uživatel klikne. Použijte vlastnost Title.
Odeberte ovládací prvek z dokumentu automaticky po úpravě ovládacího prvku uživatelem. (Text v ovládacím prvku zůstane v dokumentu.) Použijte dočasnou vlastnost.
Spusťte kód, když uživatel klikne do ovládacího prvku obsahu nebo když se kurzor přesune do ovládacího prvku obsahu programově. Zpracujte Entering událost ovládacího prvku.
Spusťte kód, když uživatel klikne mimo ovládací prvek obsahu nebo když se kurzor přesune mimo ovládací prvek obsahu programově. Zpracujte Exiting událost ovládacího prvku.
Spusťte kód po přidání ovládacího prvku obsahu do dokumentu v důsledku operace opětovného provedení nebo vrácení zpět. Zpracujte Added událost ovládacího prvku.
Spusťte kód těsně před odstraněním ovládacího prvku obsahu z dokumentu. Zpracujte Deleting událost ovládacího prvku.

Ochrana částí dokumentů pomocí ovládacích prvků obsahu

Když chráníte část dokumentu, zabráníte uživatelům v tom, aby změnili nebo odstranili obsah v této části dokumentu. Části dokumentu můžete chránit několika způsoby pomocí ovládacích prvků obsahu.

Pokud je oblast, kterou chcete chránit, uvnitř ovládacího prvku obsahu, můžete použít vlastnosti ovládacího prvku obsahu, abyste uživatelům zabránili v úpravách nebo odstranění ovládacího prvku:

  • Vlastnost LockContents zabraňuje uživatelům v úpravě obsahu.

  • Vlastnost LockContentControl zabraňuje uživatelům v odstranění ovládacího prvku.

    Pokud oblast, kterou chcete chránit, není uvnitř ovládacího prvku obsahu nebo pokud chcete chránit oblast, která obsahuje ovládací prvky obsahu a další typy obsahu, můžete celou oblast umístit do GroupContentControl. Na rozdíl od jiných ovládacích prvků GroupContentControl obsahu neposkytuje uživatelské rozhraní, které je uživateli viditelné. Jejím jediným účelem je definovat oblast, kterou uživatelé nemohou upravovat.

Poznámka:

Pokud vytvoříte ovládací prvky s vloženým GroupContentControl obsahem, nebudou ovládací prvky vloženého obsahu automaticky chráněny. Chcete-li uživatelům zabránit v úpravě jejich obsahu, je nutné použít vlastnost LockContents každého vloženého ovládacího prvku.

Další informace o tom, jak používat ovládací prvky obsahu k ochraně částí dokumentů, naleznete v tématu Postupy: Ochrana částí dokumentů pomocí ovládacích prvků obsahu.

Vytvoření vazby dat k ovládacím prvkům obsahu

Data v dokumentech můžete zobrazit vazbou ovládacího prvku obsahu ke zdroji dat. Po aktualizaci zdroje dat ovládací prvek obsahu odráží změny. Změny můžete také uložit zpět do zdroje dat.

Ovládací prvky obsahu poskytují následující možnosti datové vazby:

  • Ovládací prvky obsahu můžete svázat s databázovými poli nebo spravovanými objekty pomocí stejného modelu datové vazby jako model Windows Forms.

  • Ovládací prvky obsahu můžete svázat s prvky v částech XML (označovaných také jako vlastní části XML), které jsou vloženy do dokumentu.

    Přehled ovládacích prvků hostitele vazby v řešeních Office k datům najdete v tématu Vytvoření vazby dat k ovládacím prvkům v řešeních Office.

Použití modelu datové vazby model Windows Forms

Většina ovládacích prvků obsahu podporuje jednoduchý model datových vazeb, který model Windows Forms používá. Jednoduchá datová vazba znamená, že ovládací prvek je vázán na jeden datový prvek, například hodnotu ve sloupci tabulky dat. Další informace najdete v tématu Datové vazby a model Windows Forms.

V projektech na úrovni dokumentů můžete svázat data s ovládacími prvky obsahu pomocí okna Zdroje dat v sadě Visual Studio. Další informace o tom, jak do dokumentů přidat ovládací prvky obsahu vázaného na data, najdete v tématu Postupy: Naplnění dokumentů daty z databáze a postupy: Naplnění dokumentů daty z objektů.

Následující tabulka uvádí ovládací prvky obsahu, které můžete svázat s každým datovým typem v okně Zdroje dat.

Datový typ Výchozí ovládací prvek obsahu Další ovládací prvky obsahu, které lze svázat s tímto datovým typem
Boolean

Byte

Char

Double

Enum

Guid

Int16

Int32

Int64

SByte

Single

String

TimeSpan

UInt16

UInt32

UInt64
PlainTextContentControl BuildingBlockGalleryContentControl

ComboBoxContentControl

DatePickerContentControl

RichTextContentControl
DateTime DatePickerContentControl BuildingBlockGalleryContentControl

ComboBoxContentControl

PlainTextContentControl

RichTextContentControl
Image

Byte Pole
PictureContentControl Nic

V projektech doplňků na úrovni dokumentu a VSTO můžete vytvořit vazbu ovládacího prvku obsahu ke zdroji dat prostřednictvím kódu programu pomocí Add metody DataBindings vlastnosti ovládacího prvku. Pokud to uděláte, předejte řetězec Text do propertyName parametru Add metody. Vlastnost Text je výchozí vlastnost datové vazby ovládacích prvků obsahu.

Ovládací prvky obsahu také podporují obousměrnou datovou vazbu, ve které se změny ovládacího prvku aktualizují na zdroj dat. Další informace naleznete v tématu Postupy: Aktualizace zdroje dat dat dat z hostitelského ovládacího prvku.

Poznámka:

Ovládací prvky obsahu nepodporují komplexní datové vazby. Pokud svážete zdroj DropDownListContentControl dat nebo ComboBoxContentControl s ním pomocí datového modelu model Windows Forms, zobrazí se uživatelům při kliknutí na ovládací prvek jenom jedna hodnota. Pokud chcete tyto ovládací prvky svázat se sadou datových hodnot, ze které mohou uživatelé vybírat, můžete tyto ovládací prvky svázat s prvky ve vlastní části XML.

Vytvoření vazby ovládacích prvků obsahu k vlastním částem XML

Některé ovládací prvky obsahu můžete svázat s prvky ve vlastních částech XML, které jsou vloženy do dokumentu. Další informace o vlastních částech XML naleznete v tématu Přehled vlastních částí XML.

Chcete-li vytvořit vazbu ovládacího prvku obsahu k elementu ve vlastní části XML, použijte vlastnost XMLMapping ovládacího prvku. Následující příklad kódu ukazuje, jak vytvořit vazbu PlainTextContentControl na Price element pod Product uzlem ve vlastní části XML, která již byla přidána do dokumentu.

plainTextContentControl1.XMLMapping.SetMapping("/Product/Price", String.Empty, null);

Návod, který ukazuje, jak svázat ovládací prvky obsahu s vlastními částmi XML podrobněji, naleznete v části Návod: Vytvoření vazby ovládacích prvků obsahu k vlastním částem XML.

Když vytvoříte vazbu ovládacího prvku obsahu na vlastní část XML, obousměrná datová vazba se automaticky povolí. Pokud uživatel upravuje text v ovládacím prvku, odpovídající elementy XML se automaticky aktualizují. Podobně pokud jsou hodnoty elementů ve vlastních částech XML změněny, ovládací prvky obsahu vázané na elementy XML zobrazí nová data.

Následující typy ovládacích prvků obsahu můžete svázat s vlastními částmi XML:

Události vazby dat pro ovládací prvky obsahu

Všechny ovládací prvky obsahu poskytují sadu událostí, které můžete zpracovat při provádění úloh souvisejících s daty, například ověření, že text v ovládacím prvku splňuje určitá kritéria před aktualizací zdroje dat. V následující tabulce jsou uvedeny události ovládacího prvku obsahu, které souvisejí s daty vazby.

Úloha Událost
Spusťte kód těsně před tím, než Word automaticky aktualizuje text v ovládacím prvku obsahu, který je vázán na vlastní část XML. ContentUpdating
Spusťte kód těsně před tím, než Word automaticky aktualizuje data ve vlastní části XML, která je vázána na ovládací prvek obsahu (to znamená po změně textu v ovládacím prvku obsahu). StoreUpdating
Spuštěním vlastního kódu ověřte obsah ovládacího prvku podle vlastních kritérií. Validating
Po úspěšném ověření obsahu ovládacího prvku spusťte kód. Validated

Omezení ovládacích prvků obsahu

Při používání ovládacích prvků obsahu v projektech Office mějte na paměti následující omezení.

Rozdíly v chování mezi časem návrhu a modulem runtime

Řada omezení, která systém Microsoft Office Wordu ukládá na ovládací prvky obsahu za běhu, se v době návrhu nevynucují. Při návrhu uživatelského rozhraní řešení na úrovni dokumentu v sadě Visual Studio nezapomeňte upravit ovládací prvky obsahu pouze způsoby, které jsou podporovány za běhu.

Pokud ovládací prvek obsahu upravíte v době návrhu způsobem, který ovládací prvek nepodporuje za běhu, návrhář sady Visual Studio vás nebude inzorovat na nepodporované změny. Pokud ale projekt ladíte nebo spustíte, nebo pokud projekt uložíte a pak znovu otevřete, word zobrazí chybovou zprávu a požádá o oprávnění k opravě dokumentu. Při opravě dokumentu word odebere z ovládacího prvku veškerý nepodporovaný obsah a formátování.

Word například nezabrání přidání tabulky do návrhu PlainTextContentControl . Vzhledem k tomu, že PlainTextContentControl objekty nemohou v době běhu obsahovat tabulky, aplikace Word při otevření dokumentu zobrazí chybovou zprávu.

Všimněte si také, že mnoho vlastností, které definují chování ovládacích prvků obsahu, nemají v době návrhu žádný vliv. Pokud například nastavíte vlastnost LockContents ovládacího prvku obsahu v době návrhu na hodnotu True , můžete text v ovládacím prvku upravit v návrháři sady Visual Studio. Tato vlastnost brání uživatelům pouze v úpravě ovládacího prvku za běhu.

Omezení událostí

Ovládací prvky obsahu neposkytují událost, která se vyvolá, když uživatel změní text nebo jiné položky v ovládacím prvku. Například neexistuje žádná událost, která se vyvolá, když uživatel vybere jinou položku v bodě nebo DropDownListContentControlComboBoxContentControl.

Chcete-li určit, kdy uživatel upravuje obsah ovládacího prvku obsahu, můžete vytvořit vazbu ovládacího prvku na vlastní část XML a pak zpracovat StoreUpdating událost. Tato událost se vyvolá, když uživatel změní obsah ovládacího prvku, který je vázán na vlastní část XML. Návod, který ukazuje, jak vytvořit vazbu ovládacího prvku obsahu na vlastní část XML, naleznete v části Návod: Vytvoření vazby ovládacích prvků obsahu k vlastním částem XML.

Ovládací prvky obsahu zaškrtávacího políčka v projektech Wordu

Word 2010 zavedl nový typ ovládacího prvku obsahu, který představuje zaškrtávací políčko. Visual Studio Tools for Office runtime však neposkytuje odpovídající typ CheckBoxContentControl pro použití v projektech Office. Chcete-li vytvořit ovládací prvek obsahu zaškrtávacího políčka v projektu Wordu 2013 nebo Wordu 2010, použijte AddContentControl metodu k vytvoření objektu ContentControl a předejte wdContentControlCheckBox hodnotu metodě k určení ovládacího prvku obsahu zaškrtávacího políčka. Následující příklad kódu ukazuje, jak to provést.

this.Paragraphs[1].Range.InsertParagraphBefore();
this.Paragraphs[1].Range.Select();
Microsoft.Office.Tools.Word.ContentControl checkBoxControl1 = 
    this.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox);

checkBoxControl1.Checked = true;