# C1.Framework.Theme

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Framework_Theme" data-uid="C1.Framework.Theme" class="text-break">Theme Class
</h1>
  <div class="markdown level0 summary"><p>Class that contains a keyed collection of <a class="xref" href="C1.Framework.Style.html">Style</a> objects and methods
to serialize the styles into Xml files and streams.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.objectmodel.collection-1">Collection</a>&lt;<a class="xref" href="C1.Framework.Style.html">Style</a>&gt;</div>
    <div class="level2"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.objectmodel.keyedcollection-2">KeyedCollection</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>, <a class="xref" href="C1.Framework.Style.html">Style</a>&gt;</div>
    <div class="level3"><span class="xref">Theme</span></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ilist-1">IList</a>&lt;<a class="xref" href="C1.Framework.Style.html">Style</a>&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1">ICollection</a>&lt;<a class="xref" href="C1.Framework.Style.html">Style</a>&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.ilist">IList</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.icollection">ICollection</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist-1">IReadOnlyList</a>&lt;<a class="xref" href="C1.Framework.Style.html">Style</a>&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlycollection-1">IReadOnlyCollection</a>&lt;<a class="xref" href="C1.Framework.Style.html">Style</a>&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="C1.Framework.Style.html">Style</a>&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.ienumerable">IEnumerable</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.Framework.html">C1.Framework</a></h6>
  <h6><strong>Assembly</strong>: C1.Win.10.dll</h6>
  <h5 id="C1_Framework_Theme_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class Theme : KeyedCollection&lt;string, Style&gt;, IList&lt;Style&gt;, ICollection&lt;Style&gt;, IList, ICollection, IReadOnlyList&lt;Style&gt;, IReadOnlyCollection&lt;Style&gt;, IEnumerable&lt;Style&gt;, IEnumerable</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class Theme
    Inherits KeyedCollection(Of String, Style)
    Implements IList(Of Style), ICollection(Of Style), IList, ICollection, IReadOnlyList(Of Style), IReadOnlyCollection(Of Style), IEnumerable(Of Style), IEnumerable</code></pre>
  </div>
  <h5 id="C1_Framework_Theme_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p>The Theme class is a named/keyed collection of <a class="xref" href="C1.Framework.Style.html">Style</a> objects.</p>
<p>The class is designed to be used as a base class for components that need
to add custom elements to themes in addition to a style collection.</p>
<p>Inheritors should override the following methods:</p>
<pre><code class="lang-csharp">// specify the name of the component that will use this theme
protected virtual string ComponentType

// save component-specific elements to xml
protected virtual void WriteCustomData(XmlWriter writer)

// load component-specific elements from xml
protected virtual void ReadCustomData(XmlNode node)</code></pre>
</div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Theme__ctor" data-uid="C1.Framework.Theme.#ctor">
          <a class="xref" href="C1.Framework.Theme.-ctor.html#C1_Framework_Theme__ctor">Theme()</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of a <a class="xref" href="C1.Framework.Theme.html">Theme</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme__ctor_System_String_" data-uid="C1.Framework.Theme.#ctor(System.String)">
          <a class="xref" href="C1.Framework.Theme.-ctor.html#C1_Framework_Theme__ctor_System_String_">Theme(string)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of a <a class="xref" href="C1.Framework.Theme.html">Theme</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Theme_ComponentType" data-uid="C1.Framework.Theme.ComponentType">
          <a class="xref" href="C1.Framework.Theme.ComponentType.html#C1_Framework_Theme_ComponentType">ComponentType</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the name of the component that owns the theme
(e.g., &quot;C1Schedule&quot;, &quot;C1Calendar&quot; or &quot;C1Ribbon&quot;).</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_Name" data-uid="C1.Framework.Theme.Name">
          <a class="xref" href="C1.Framework.Theme.Name.html#C1_Framework_Theme_Name">Name</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the theme name (e.g. &quot;RedMoon&quot;);</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Theme_GetKeyForItem_C1_Framework_Style_" data-uid="C1.Framework.Theme.GetKeyForItem(C1.Framework.Style)">
          <a class="xref" href="C1.Framework.Theme.GetKeyForItem.html#C1_Framework_Theme_GetKeyForItem_C1_Framework_Style_">GetKeyForItem(Style)</a>
        </td>
        <td class="markdown level1 summary"><p>Styles are indexed by style name.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_LoadImage_System_Xml_XmlNode_" data-uid="C1.Framework.Theme.LoadImage(System.Xml.XmlNode)">
          <a class="xref" href="C1.Framework.Theme.LoadImage.html#C1_Framework_Theme_LoadImage_System_Xml_XmlNode_">LoadImage(XmlNode)</a>
        </td>
        <td class="markdown level1 summary"><p>Loads an image from the Xml stream.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_LoadThemes_System_String_" data-uid="C1.Framework.Theme.LoadThemes(System.String)">
          <a class="xref" href="C1.Framework.Theme.LoadThemes.html#C1_Framework_Theme_LoadThemes_System_String_">LoadThemes(string)</a>
        </td>
        <td class="markdown level1 summary"><p>Loads a collection of themes from an Xml file.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_ReadCustomData_System_Xml_XmlNode_" data-uid="C1.Framework.Theme.ReadCustomData(System.Xml.XmlNode)">
          <a class="xref" href="C1.Framework.Theme.ReadCustomData.html#C1_Framework_Theme_ReadCustomData_System_Xml_XmlNode_">ReadCustomData(XmlNode)</a>
        </td>
        <td class="markdown level1 summary"><p>Reads component-specific theme data.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_ReadXml_System_IO_Stream_" data-uid="C1.Framework.Theme.ReadXml(System.IO.Stream)">
          <a class="xref" href="C1.Framework.Theme.ReadXml.html#C1_Framework_Theme_ReadXml_System_IO_Stream_">ReadXml(Stream)</a>
        </td>
        <td class="markdown level1 summary"><p>Reads this <a class="xref" href="C1.Framework.Theme.html">Theme</a> from an Xml <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.io.stream">Stream</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_ReadXml_System_String_" data-uid="C1.Framework.Theme.ReadXml(System.String)">
          <a class="xref" href="C1.Framework.Theme.ReadXml.html#C1_Framework_Theme_ReadXml_System_String_">ReadXml(string)</a>
        </td>
        <td class="markdown level1 summary"><p>Reads this <a class="xref" href="C1.Framework.Theme.html">Theme</a> from an Xml file.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_ReadXml_System_Xml_XmlNode_" data-uid="C1.Framework.Theme.ReadXml(System.Xml.XmlNode)">
          <a class="xref" href="C1.Framework.Theme.ReadXml.html#C1_Framework_Theme_ReadXml_System_Xml_XmlNode_">ReadXml(XmlNode)</a>
        </td>
        <td class="markdown level1 summary"><p>Reads this <a class="xref" href="C1.Framework.Theme.html">Theme</a> from an <span class="xref">System.Xml.XmlNode</span>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_ReadXml_System_Xml_XmlReader_" data-uid="C1.Framework.Theme.ReadXml(System.Xml.XmlReader)">
          <a class="xref" href="C1.Framework.Theme.ReadXml.html#C1_Framework_Theme_ReadXml_System_Xml_XmlReader_">ReadXml(XmlReader)</a>
        </td>
        <td class="markdown level1 summary"><p>Reads this <a class="xref" href="C1.Framework.Theme.html">Theme</a> from an <span class="xref">System.Xml.XmlReader</span>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_ReadXmlString_System_String_" data-uid="C1.Framework.Theme.ReadXmlString(System.String)">
          <a class="xref" href="C1.Framework.Theme.ReadXmlString.html#C1_Framework_Theme_ReadXmlString_System_String_">ReadXmlString(string)</a>
        </td>
        <td class="markdown level1 summary"><p>Reads this <a class="xref" href="C1.Framework.Theme.html">Theme</a> from an Xml string.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_SaveImage_System_Xml_XmlWriter_System_String_System_Drawing_Image_" data-uid="C1.Framework.Theme.SaveImage(System.Xml.XmlWriter,System.String,System.Drawing.Image)">
          <a class="xref" href="C1.Framework.Theme.SaveImage.html#C1_Framework_Theme_SaveImage_System_Xml_XmlWriter_System_String_System_Drawing_Image_">SaveImage(XmlWriter, string, Image)</a>
        </td>
        <td class="markdown level1 summary"><p>Saves an image into the Xml output stream.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_SaveThemes_C1_Framework_Theme___System_String_" data-uid="C1.Framework.Theme.SaveThemes(C1.Framework.Theme[],System.String)">
          <a class="xref" href="C1.Framework.Theme.SaveThemes.html#C1_Framework_Theme_SaveThemes_C1_Framework_Theme___System_String_">SaveThemes(Theme[], string)</a>
        </td>
        <td class="markdown level1 summary"><p>Saves a collection of themes into an Xml file.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_WriteCustomData_System_Xml_XmlWriter_" data-uid="C1.Framework.Theme.WriteCustomData(System.Xml.XmlWriter)">
          <a class="xref" href="C1.Framework.Theme.WriteCustomData.html#C1_Framework_Theme_WriteCustomData_System_Xml_XmlWriter_">WriteCustomData(XmlWriter)</a>
        </td>
        <td class="markdown level1 summary"><p>Writes component-specific data into the theme.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_WriteXml_System_IO_Stream_" data-uid="C1.Framework.Theme.WriteXml(System.IO.Stream)">
          <a class="xref" href="C1.Framework.Theme.WriteXml.html#C1_Framework_Theme_WriteXml_System_IO_Stream_">WriteXml(Stream)</a>
        </td>
        <td class="markdown level1 summary"><p>Writes this <a class="xref" href="C1.Framework.Theme.html">Theme</a> into an Xml <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.io.stream">Stream</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_WriteXml_System_String_" data-uid="C1.Framework.Theme.WriteXml(System.String)">
          <a class="xref" href="C1.Framework.Theme.WriteXml.html#C1_Framework_Theme_WriteXml_System_String_">WriteXml(string)</a>
        </td>
        <td class="markdown level1 summary"><p>Writes this <a class="xref" href="C1.Framework.Theme.html">Theme</a> into an Xml file.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Theme_WriteXml_System_Xml_XmlWriter_" data-uid="C1.Framework.Theme.WriteXml(System.Xml.XmlWriter)">
          <a class="xref" href="C1.Framework.Theme.WriteXml.html#C1_Framework_Theme_WriteXml_System_Xml_XmlWriter_">WriteXml(XmlWriter)</a>
        </td>
        <td class="markdown level1 summary"><p>Writes this <a class="xref" href="C1.Framework.Theme.html">Theme</a> into an <span class="xref">System.Xml.XmlWriter</span>.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
