SharePoint 网站主题:CSOM 开发

借助 SharePoint 客户端对象模型 (CSOM),可以通过在本地或非 SharePoint 服务器上运行的代码访问 SharePoint 对象模型。

先决条件

开始前,请务必先熟悉以下内容:

此外,还需要引用 Microsoft.SharePointOnline.CSOM NuGet 包(版本 16.1.6906.1200 或更高版本)。

CSOM 代码示例

下面的示例展示了如何创建 Microsoft.Online.SharePoint.TenantAdministration.Tenant 对象,并调用 GetAllTenantThemes 方法以返回主题列表。

注意

  • 用于创建上下文对象的 URL 包括 -admin 后缀,因为 TenantAdministration 方法处理的是管理网站。
  • 使用 Tenant 构造函数创建 Tenant 实例,再对此实例调用相应方法。
  • 可以使用同一种方法调用其他主题管理方法。
using System.Security;
using Microsoft.SharePoint.Client;
using Microsoft.Online.SharePoint.TenantAdministration;
using Microsoft.Online.SharePoint.TenantManagement;

...

ClientContext ctx = new ClientContext("https://mysite-admin.sharepoint.com/");
var pwd = "mypassword";
var passWord = new SecureString();
foreach (char c in pwd.ToCharArray()) passWord.AppendChar(c);
ctx.Credentials = new SharePointOnlineCredentials("admin@mydomain.com", passWord);
Tenant tenant = new Tenant(ctx);
ClientObjectList<ThemeProperties> themes = tenant.GetAllTenantThemes();

主题定义示例

对于需要使用主题参数的方法,下面的代码定义了可用于创建自定义主题的 SPOTheme 类。

/// <summary> 
/// Properties defining a theme in SharePoint Online. 
/// </summary> 
public class SPOTheme 
{ 
    /// <summary> 
    /// Specifies the name of the theme. This must uniquely identify the theme. 
    /// </summary> 
    public string Name 
    { 
        get; private set; 
    } 
    /// <summary> 
    /// Specifies the palette of colors in the theme, as a dictionary of theme slot values. 
    /// </summary> 
    public IDictionary<String, String> Palette 
    { 
        get; private set; 
    } 
    /// <summary> 
    /// Specifies whether the theme is inverted, with a dark background and a light foreground. 
    /// </summary> 
    public bool IsInverted 
    { 
        get; private set; 
    } 
} 

应用主题

暂无以编程方式将主题应用到特定网站的受支持 CSOM API。 有关向单个网站集应用自定义主题的信息,请参阅 SharePoint 网站设计和网站脚本概述

Microsoft.Online.SharePoint.TenantAdministration.Tenant 类的方法/属性

以下方法可用于自定义一组可用于 SharePoint 租户管理网站的主题。 可以添加新的自定义主题、更新现有主题或删除主题,以及检索特定主题或所有主题。 此外,还可以隐藏或还原 SharePoint 随附的默认主题。

AddTenantTheme 公共方法

向租户添加主题。

命名空间:Microsoft.Online.SharePoint.TenantAdministration.Tenant
参数:字符串名称、字符串主题 JSON
返回类型: ClientResult<bool>

DeleteTenantTheme 公共方法

从租户中删除主题。

命名空间:Microsoft.Online.SharePoint.TenantAdministration.Tenant
参数:字符串名称
返回类型:void

GetAllTenantThemes 公共方法

检索租户中的当前所有主题,包括已添加的全部自定义主题。 仅当 HideDefaultThemes 属性为 false(默认值)时,才包括默认主题。

命名空间:Microsoft.Online.SharePoint.TenantAdministration.Tenant
参数:
返回类型: ClientObjectList<ThemeProperties>

GetTenantTheme 公共方法

按名称检索主题。

命名空间:Microsoft.Online.SharePoint.TenantAdministration.Tenant
参数:字符串名称
返回类型:ThemeProperties

HideDefaultThemes 公共属性

此属性指明主题选取器 UI 中是否显示默认主题。 默认设置为 false(显示默认主题),但建议在定义自定义主题后将此属性设置为 true,这样用户就可以只使用特定主题。

命名空间:Microsoft.Online.SharePoint.TenantAdministration.Tenant
类型:Boolean

UpdateTenantTheme 公共方法

更新现有主题的设置。

命名空间:Microsoft.Online.SharePoint.TenantAdministration.Tenant
参数:字符串名称、字符串主题 JSON
返回类型: ClientResult<bool>

Microsoft.Online.SharePoint.TenantManagement.Tenant 类的方法

以下是在租户级别管理主题的可选 API。

AddTenantTheme 公共方法

向租户添加主题。

命名空间:Microsoft.Online.SharePoint.TenantManagement.Tenant
参数:字符串名称、字符串主题 JSON
返回类型: ClientResult<bool>

GetAllTenantThemes 公共方法

检索租户中的当前所有主题,包括已添加的全部自定义主题。 仅当 HideDefaultThemes 属性为 false(默认值)时,才包括默认主题。

命名空间:Microsoft.Online.SharePoint.TenantManagement.Tenant
参数:
返回类型: ClientObjectList<ThemeProperties>

GetHideDefaultThemes 公共方法

读取有关是否在主题选取器 UI 中隐藏默认主题的当前设置。

命名空间:Microsoft.Online.SharePoint.TenantManagement.Tenant
参数:
返回类型: ClientResult<bool>

GetTenantTheme 公共方法

按名称检索主题。

命名空间:Microsoft.Online.SharePoint.TenantManagement.Tenant
参数:字符串名称
返回类型:ThemeProperties

SetHideDefaultThemes 公共方法

指定是否在主题选取器 UI 中隐藏默认主题。

命名空间:Microsoft.Online.SharePoint.TenantManagement.Tenant
参数:Boolean
返回类型:void

UpdateTenantTheme 公共方法

更新现有主题的设置。

命名空间:Microsoft.Online.SharePoint.TenantManagement.Tenant
参数:字符串名称、字符串主题 JSON
返回类型: ClientResult<bool>

另请参阅