2009-10-20 28 views
0

Discussion on OOoForum.orgComment définir les propriétés d'un XTextTable dans OpenOffice.org uno en utilisant C#?

En python, je peux faire quelque chose comme ceci:

table.BreakType = PAGE_BEFORE 
table.HoriOrient = 0 
table.RightMargin = 6.93 * 2540 - table_width 

En C#, je ne peux pas trouver un moyen de définir les propriétés. XTableTable a seulement quelques méthodes à sa disposition, et aucun d'entre eux ne semble faire quelque chose comme ça. Comment définir les propriétés en C#?

Répondre

0

Vous devez accéder à la table via l'interface XPropertySet. Vous pouvez le faire en jetant la table à un XPropertSet:

// Example 
XPropertySet tablePropSet = (XPropertySet)textTable; 

// This is how you set a property in C# 
// You have to create a new Any object to pass it as parameter 
tablePropSet.setPropertyValue("HeaderRowCount", new Any(typeof(int), 1)); 

Le « Tout » objet se trouve dans l'espace de noms « uno » (non unoidl.com.sun.star.uno). Vous n'avez pas vraiment besoin de faire

typeof(int) 

sauf si le type n'est pas un type de base.

new Any(1) 

Fonctionne correctement pour les types de base.

BREAKSaisissez exemple:

XPropertySet tablePropertySet = (XPropertySet)table; 
tablePropertySet.setPropertyValue 
    ("BreakType", new Any(typeof(BreakType), BreakType.PAGE_BEFORE));