<Type Name="Effect" FullName="Microsoft.Maui.Controls.Effect">
  <TypeSignature Language="C#" Value="public abstract class Effect" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit Effect extends System.Object" />
  <TypeSignature Language="DocId" Value="T:Microsoft.Maui.Controls.Effect" />
  <TypeSignature Language="F#" Value="type Effect = class" />
  <AssemblyInfo>
    <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <summary>A collection of styles and properties that can be added to an element at run time.</summary>
    <remarks>
      <para>Effects are suitable when the developer needs to use platform-specific features to achieve the desired effect. Developers should consider using <see cref="T:Microsoft.Maui.Controls.Behavior" /> if they do not need platform-specific implentations to achieve their desired result.</para>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName="Element">
      <MemberSignature Language="C#" Value="public Microsoft.Maui.Controls.Element Element { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance class Microsoft.Maui.Controls.Element Element" />
      <MemberSignature Language="DocId" Value="P:Microsoft.Maui.Controls.Effect.Element" />
      <MemberSignature Language="F#" Value="member this.Element : Microsoft.Maui.Controls.Element" Usage="Microsoft.Maui.Controls.Effect.Element" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>Microsoft.Maui.Controls.Element</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the element to which the style is attached.</summary>
        <value>The <see cref="T:Microsoft.Maui.Controls.Element" /> to which the property is attached, if the property is attached. Otherwise, <see langword="null" />.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="IsAttached">
      <MemberSignature Language="C#" Value="public bool IsAttached { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool IsAttached" />
      <MemberSignature Language="DocId" Value="P:Microsoft.Maui.Controls.Effect.IsAttached" />
      <MemberSignature Language="F#" Value="member this.IsAttached : bool" Usage="Microsoft.Maui.Controls.Effect.IsAttached" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets a value that tells whether the effect is attached to an element.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnAttached">
      <MemberSignature Language="C#" Value="protected abstract void OnAttached ();" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void OnAttached() cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Effect.OnAttached" />
      <MemberSignature Language="F#" Value="abstract member OnAttached : unit -&gt; unit" Usage="effect.OnAttached " />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Method that is called after the effect is attached and made valid.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnDetached">
      <MemberSignature Language="C#" Value="protected abstract void OnDetached ();" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void OnDetached() cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Effect.OnDetached" />
      <MemberSignature Language="F#" Value="abstract member OnDetached : unit -&gt; unit" Usage="effect.OnDetached " />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Method that is called after the effect is detached and invalidated.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Resolve">
      <MemberSignature Language="C#" Value="public static Microsoft.Maui.Controls.Effect Resolve (string name);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Microsoft.Maui.Controls.Effect Resolve(string name) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Effect.Resolve(System.String)" />
      <MemberSignature Language="F#" Value="static member Resolve : string -&gt; Microsoft.Maui.Controls.Effect" Usage="Microsoft.Maui.Controls.Effect.Resolve name" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>Microsoft.Maui.Controls.Effect</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="name">The name of the effect to get.</param>
        <summary>Returns an <see cref="T:Microsoft.Maui.Controls.Effect" /> for the specified name, which is of the form <c>ResolutionGroupName.ExportEffect</c>.</summary>
        <returns>The uniquely identified effect.</returns>
        <remarks>The <see cref="M:Microsoft.Maui.Controls.Effect.Resolve(System.String)" /> method takes a string that is the concatenation of a resolution group name (supplied to <see cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />), <c>'.'</c>, and the unique name that was supplied to <see cref="T:Microsoft.Maui.Controls.ExportEffectAttribute" />, and returns the specified effect.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ResolveId">
      <MemberSignature Language="C#" Value="public string ResolveId { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance string ResolveId" />
      <MemberSignature Language="DocId" Value="P:Microsoft.Maui.Controls.Effect.ResolveId" />
      <MemberSignature Language="F#" Value="member this.ResolveId : string" Usage="Microsoft.Maui.Controls.Effect.ResolveId" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the ID that is used to resolve this effect at runtime.</summary>
        <value>The ID that is used to resolve this effect at runtime.</value>
        <remarks>
          <para>Developers must supply a name to <see cref="T:Microsoft.Maui.Controls.ExportEffectAttribute" /> that is unique over the scope of the name that they supply to <see cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />. The <see cref="M:Microsoft.Maui.Controls.Effect.Resolve(System.String)" /> method takes a string that is the concatenation of <paramref name="name" /> (the resolution group name), <c>'.'</c>, and the unique name that was supplied to <see cref="T:Microsoft.Maui.Controls.ExportEffectAttribute" />, and returns the specified effect.</para>
          <example>
            <para>For example, with the declarations:</para>
            <code lang="c#"><![CDATA[
            [assembly: ResolutionGroupName ("com.YourCompany")]
            [assembly: ExportEffect (typeof (ShadowEffect), "ShadowEffect")]]]></code>
            <para>Then the code below will add the effect to a button:</para>
            <code lang="c#"><![CDATA[
            [var button = new Button { Text = "I have a shadow" };
    button.Effects.Add (Effect.Resolve ("com.YourCompany.ShadowEffect"));]]></code>
          </example>
          <para>This property returns the string that developers pass to <see cref="M:Microsoft.Maui.Controls.Effect.Resolve(System.String)" /> to get the effect at runtime.</para>
        </remarks>
      </Docs>
    </Member>
  </Members>
</Type>
