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>