XSLT рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XAML рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

WPF рдФрд░ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XAML рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдо рдорд╛рд░реНрдХрдЕрдк рдлрд╛рдЗрд▓реЗрдВ рд░рдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред

WPF рдФрд░ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдорд╛рд░реНрдХрдЕрдк рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрд╖реНрдЯрдкреНрд░рдж рдЕрдВрддрд░ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рдЭрд╛рдХрд░рдг рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ WPF2SL рдирд╛рдордХ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

WPF2SL рдЖрдо рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХреНрд╕рдПрд╕рдПрд▓рдЯреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдФрд░ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдирдХрд╛ рд╣рдордиреЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдерд╛ред

WPF2SL рдкрд░рд┐рдпреЛрдЬрдирд╛ 4 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реБрдИ рдЬрдм рд╣рдордиреЗ WPF рдФрд░ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред WPF рдирд┐рдпрдВрддреНрд░рдг рдкрд╣рд▓реЗ рддреИрдпрд╛рд░ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдмреАрдЪ рдорд╛рд░реНрдХрдЕрдк рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ред рдЙрд╕ рд╕рдордп, WPF рдФрд░ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдЕрдм рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ 3 рдореЗрдВ рдХреЛрдИ рдирд┐рд╣рд┐рдд рд╢реИрд▓реА, рдорд╛рд░реНрдХрдЕрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ рдереЗ рдФрд░ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдереЗред

рд╡реИрд╕реЗ, рд╣рдорд╛рд░реЗ рдХреБрдЫ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рдПрдХ рдЕрд▓рдЧ рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдирд┐рдпрдВрддреНрд░рдг рддреИрдпрд╛рд░ рдерд╛ рдФрд░ WPF рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреА рдЙрдирдХреА рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рдордВрдЪ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЕрднреА рднреА WPF рдордВрдЪ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЪрд▓рд┐рдП System.Xml.Xsl.XslCompiledTransform рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣реА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ MSDN рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ XslCompiledTransform.Load рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XSLT рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ XSLT рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдореГрддрд┐ рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред

WPF2SL рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЗрдирдкреБрдЯ XAML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, XslCompiledTransform.Load рдкрд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдЖрд░рдВрднреАрдХрд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдмрд╣реБрдд рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ред XslCompiledTransform рдореЗрдВ, рд╕реНрд░реЛрдд рдЯреНрд░реА рдХреЗ рдиреЛрдбреНрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдпреБрдХреНрдд рдПрдХ XSLT рдлрд╝рд╛рдЗрд▓ рднрд░реА рд╣реБрдИ рд╣реИред XSLT рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рд╣реИрдВред рд╕рдмрд╕реЗ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓рд╛ рдирд┐рдпрдо рдкрд╣рд▓рд╛ рд╣реИред рдпрд╣ рдПрдХ рдХреЙрдкреА рдирд┐рдпрдо рд╣реИред

<xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> 

рдпрджрд┐ рдиреЛрдб рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдбрд╛рдпрдирд╛рдорд┐рдХрд╕реЛрд░реНрд╕ рдХрд╛ рдЕрднрд╛рд╡

рдпрджрд┐ рдЖрдк рдмрд╕ DynamicResource рдХреЛ StaticResource рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдореА рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЧрд▓рдд рдЕрдиреБрд╕рд░рдг рд╕реЗ рдЬреБрдбрд╝реА рдХрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА, рдХреНрдпреЛрдВрдХрд┐ StaticResource рдХреЛ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рднреАрддрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдерд╛ред StaticResource рдХреЗ рд╕рд╛рде DynamicResource рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП XSLT рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред

 <xsl:template match="@*"> тАж <xsl:attribute name="{local-name(.)}" namespace="{namespace-uri(.)}"> <xsl:variable name="tempValue1"> <xsl:call-template name="globalReplace"> <xsl:with-param name="outputString" select="."/> <xsl:with-param name="target" select="'DynamicResource'"/> <xsl:with-param name="replacement" select="'StaticResource'"/> </xsl:call-template> </xsl:variable> <xsl:value-of select="normalize-space($tempValue1)"/> </xsl:attribute> </xsl:template> 


рд╕рдорд╕реНрдпрд╛ рддрдм рдЬрдЯрд┐рд▓ рд╣реЛрддреА рд╣реИ рдЬрдм рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рд╣реЛрддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ XSLT рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЪрд░рдг рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХрдЯрд┐рдВрдЧ рдиреЛрдбреНрд╕ рдФрд░ рдПрдЯреНрд░реАрдмреНрдпреВрдЯреНрд╕ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ

рдЪреВрдВрдХрд┐ WPF рдорд╛рд░реНрдХрдЕрдк рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдорд╛рд░реНрдХрдЕрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рдореГрджреНрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ XAML рдЯреНрд░реА рд╕реЗ рдиреЛрдбреНрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдХрд╛рдЯрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ XSLT рдореЗрдВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреЗрд╢ рдХрд░реЗрдВ:

 <xsl:template match="@FocusVisualStyle"/> 


рд╕рдмрдЯреНрд░реА рдХрд╛рдЯрдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:

 <xsl:template match="wpf:Style.Triggers"/> 


рд╕рдВрд╕рд╛рдзрди рдХреБрдВрдЬреА рдЕрдиреБрд╡рд╛рдж рд╕реБрд╡рд┐рдзрд╛рдПрдБ

WPF рдФрд░ Silvelight рджреЛрдиреЛрдВ рдореЗрдВ, рдЖрдк XAML рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдПрдХ рд╕рдВрд╕рд╛рдзрди рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рд╕рдВрд╕рд╛рдзрди рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред WPF рдореЗрдВ, рдХреБрдВрдЬреА рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ SL рдореЗрдВ, рдХреБрдВрдЬреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк WPF рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реА рдХреБрдВрдЬреА рд╣реЛ, рд▓реЗрдХрд┐рди рд╣рдо рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬрд┐рдпреЛрдВ рдкрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред WPF рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ
 <SolidColorBrush x:Key="{dxt:FloatingContainerThemeKey ResourceKey=FloatingContainerBackground}" Color="#FFA3C3EC" /> 

рдЬрд╣рд╛рдВ FloatingContainerThemeKey, System.Windows.ResourceKey рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╕реНрддреБ рд╣реИред рдЬреЗрдиреЗрд░рд┐рдХ рдПрдХ Enum рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рдореБрдЦ рдирд╛рдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
 public class FloatingContainerThemeKeyExtension : ThemeKeyExtensionBase<FloatingContainerThemeKey> { } public enum FloatingContainerThemeKey { FloatingContainerAdornerTemplate, FloatingContainerPopupTemplate, FloatingContainerWindowTemplate, } 



рдЗрд╕рдХреЗ рдХрд╛рд░рдг, WPF рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдШреЛрд╖рдгрд╛ рдореЗрдВ рдпрд╛ рд╕рдВрд╕рд╛рдзрди рд▓рд┐рдВрдХ рдореЗрдВ рдкреНрд░рдореБрдЦ рдирд╛рдо рдореЗрдВ рдЧрд▓рддреА рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред

XAML рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП
 <SolidColorBrush x:Key="{dxt:FloatingContainerThemeKey ResourceKey=FloatingContainerBackground}" Color="#FFA3C3EC" /> 

рд▓рд╛рдЗрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд
 <SolidColorBrush x:Key="FloatingContainerThemeKey_FloatingContainerBackground" Color="#FFA3C3EC" /> 


XML рдирд╛рдо рд╕реНрдерд╛рди

WPF рдФрд░ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдХрдИ рд╕рдорд╛рди рддрддреНрд╡ рдЕрд▓рдЧ-рдЕрд▓рдЧ xml рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╣реИрдВред рдЗрд╕ рдЕрдВрддрд░ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ред

 <xsl:template match="wpf:Label"> <sdk:Label xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"> <xsl:apply-templates select="@* | node()"/> </sdk:Label> </xsl:template> <xsl:template match="wpf:TreeView"> <sdk:TreeView xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"> <xsl:apply-templates select="@* | node()"/> </sdk:TreeView> </xsl:template> 


рдЬрдм рд╣рдореЗрдВ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рддреЛ рд╣рдордиреЗ рдЕрдкрдирд╛ рд╡рдВрд╢рдЬ рд╕реНрдЯреИрдВрдбрд░реНрдб рдХреНрд▓рд╛рд╕ XmlTextWriter рд╕реЗ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдиреЗ рд░рд╛рдЗрдЯрд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд┐рдпрд╛ред
 public override void WriteString(string text) { if(NamespacesReplacementTable.ContainsKey(text)) base.WriteString(NamespacesReplacementTable[text]); else base.WriteString(text); тАж } 

рдпрд╣ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдПрдХ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ XslCompiledTransform.Transfrom (рд░реАрдбрд░, рд▓реЗрдЦрдХ) рдкрджреНрдзрддрд┐ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдЯреЗрдмрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдУрд╡рд░рд▓реЛрдбреЗрдб рд░рд╛рдЗрдЯрд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХреАрдХрд░рдг

WPF2SL рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдкреНрд░реА-рдмрд┐рд▓реНрдб рдЗрд╡реЗрдВрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ SL рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ, рдЙрдкрдпреБрдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ WPF2SL рдХреЙрд▓ рдкрдВрдЬреАрдХреГрдд рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИред рд▓рдЧрднрдЧ рд╕рднреА рдХреЗ рдкрд╛рд╕ рдЕрдм рдорд▓реНрдЯреА-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рд▓реА рдорд╢реАрдиреЗрдВ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдПрдХ рд╕рд╛рде рдХрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП msbuild рдПрдХ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓реА рдХрд░рддрд╛ рд╣реИред WPF2SL рдЕрд╕реНрдерд╛рдпреА рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВред рдЪреВрдБрдХрд┐ рдЙрдирдХреЗ рдирд╛рдо рдореЗрд▓ рдЦрд╛рддреЗ рдереЗ, рдПрдХ рдкрд╣реБрдБрдЪ рд╕рдВрдШрд░реНрд╖ рдЙрддреНрдкрдиреНрди рд╣реБрдЖред рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдИрдбреА рдЬреЛрдбрд╝рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

XSLT рд░реВрдкрд╛рдВрддрд░рдг рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдирд┐рджрд╛рди

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, XSLT рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рд▓реЗрдЦрдХ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ)ред рдЬрдм рдХреБрдЫ XSLT рд░реВрдкрд╛рдВрддрд░рдг рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XSLT рдХреЛ рдкреБрди: рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ, рддреЛ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ XSLT рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ; рдпрджрд┐ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рдФрд░ рдЖрдзрд╛ рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд╣рдорд╛рд░рд╛ рдирд╛рдо рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ: "рдЕрд░реНрдз-рдЯрд┐рдкреНрдкрдгреА рд╡рд┐рдзрд┐"ред

рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ XAML рд╕рд╣рд┐рдд рд╕рднреА рдШреЛрд╖рдгрд╛рддреНрдордХ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреМрди рд╕рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЧрд▓рдд рд▓рд╛рдЗрди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖

XSLT рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмреАрдЪ XAML рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ XslCompiledTransform рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд╛ .NET XSLT рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛, рдЙрддреНрдкрд╛рджрдХ рдФрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реИред

рд╕рд╛рд╣рд┐рддреНрдп

рд╕рд╛рд▓ рдореИрдВрдЧрд╛рдиреЛред XSLTред рдкрдХрд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ рд╕рдВрдЧреНрд░рд╣

Source: https://habr.com/ru/post/In218711/


All Articles