Files
Semi.Avalonia/_framework/Avalonia.Controls.ColorPicker.up4d8pwb8n.wasm

5221 lines
286 KiB
Plaintext
Raw Normal View History

asm
``webcilmemory A A A webcilVersion
webcilSize getWebcilSizegetWebcilPayload 
 AA<04> A <01> <0B><>Lv<01><>WbIL Hh<><00>l nLT<00>Ln <00>Lt<00><>H<1C>L<> <00><00>\<00><><00>V(
((*"}*"}*0<00>~
 (
~,ݣ
s
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% Ua<55><61>(
(
% &2<><32>(
(
% ${<7B>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20>z<EFBFBD><7A>(
(
% <20>N<EFBFBD><4E>(
(
% t9c<39>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20>̩<EFBFBD>(
(
% ǙT<C799>(
(
% <20>q$<24>(
(
% vR<1A>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><>H<EFBFBD>(
(
% <20><><17>(
(
% dx<11>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20>ߩ<EFBFBD>(
(
% <20><>R<EFBFBD>(
(
% T<>"<22>(
(
% =o<19>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% ?<3F><><EFBFBD>(
(
% <0A><><EFBFBD>(
(
%
}<7D><>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% N<><4E><EFBFBD>(
(
% o<><6F>(
(
% Q<><51>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% <20><><EFBFBD><EFBFBD>(
(
% jj_<6A>(
(
%  <20><><EFBFBD><EFBFBD>(
(
%  <20><><EFBFBD><EFBFBD>(
(
%  ~m]<5D>(
(
%  S@.<2E>(
(
%  </!<21>(
(
<EFBFBD><04>
,(
<EFBFBD>**A<00><00>

*
*<2A>~-(~(Y(
(Y(
(
*(
*F<14>s
<EFBFBD>*2~o
*2~o
*<2A>~~o
Y(
~o
Y(
(
*0s
% <20> <20>CC(
(
% <20> <20>48(
(
% <20> <20>iP(
(
% <20> <20>;(
(
% <20> <20>P(
(
% <20> <20>c (
(
% <20> <20> <20>(
(
% <20> <20> <20>(
(
% <20> <20>HV(
(
% <20> <20>#(
(
% <20> <20>^(
(
% <20> <20>R(
(
% <20> <20> <20>(
(
% <20> <20>w(
(
% <20> <20>9 <20>(
(
% <20> <20> <20>(
(
% <20>x <20>(
(
% <20>c <20>(
(
% <20> <20> <20> <20>(
(
% <20>ki <20>(
(
% <20> <20>d <20>(
(
% <20>tM <20>(
(
% <20> <20>F <20>(
(
% <20> <20> <20>(
(
% <20> <20> <20>(
(
% <20>-} <20>(
(
% <20> <20> <20>(
(
% <20> <20> <20>(
(
% <20> <20> <20>(
(
% <20> <20>t(
(
% <20> <20>j(
(
% <20> <20>>(
(
% <20>zut(
(
% <20>]ZP(
(
% <20>hv <20>(
(
% <20>Q\k(
(
% <20>V|s(
(
% <20>Hh`(
(
% <20>I <20>(
(
% <20>|(
(
% <20>vvv(
(
% <20>LJH(
(
% <20>iy~(
(
% <20>JTY(
(
% <20>d|d(
(
% <20>R^T(
(
% <20> <20>uE(
(
% <20>~s_(
(
<EFBFBD>*(*>~(+&*0A~
o+<2B>~
o+<2B>~
o+<2B>~
o+<2B>*(
*0L{ ,C{ o
%-&~
(%(9
(
,(
~#(+(*<2A>{ ,.{ ("(%((,()+(8o!
*0g{!9[{!o"
9K
{!o"
o#
+o$
u , o%
,X
o&
-<2D><>
,o'
<EFBFBD>><3E> {!o(
->{!o)
10{!o"
o#
+ o$
<0A> o&
-<2D><>,o'
<EFBFBD>{!o(
u,So%
-J{!o"
o#
+#o$
u,o%
, <0A>o&
-<2D><>
,o'
<EFBFBD>{! o*
{!o+
+{!o*
{!o+
~>{!o,
(+*(.'U
<00><15>
<00>/
0<00>{ ,.{ <02> s-
o.
{ <02>!s/
o0
o1
rp(+} o1
r!p( +}!({ ,.{ <02> s-
o3
{ <02>!s/
o4
(5
o*0 {",(6
*o7
~#(8
,I}"~(("
(9
(
+(( +( +so}"8<>o7
~((8
,Y}"~#(& (<
(+(( + (<
(+ (<
so}"8/o7
~=(8
,o(+ 9~<o(+s=
+++ oo>
Xo2<>Xo2<>~; (+8<>o7
~*(8
,~((&o(
+8<>o7
~,(8
-$o7
~.(8
-o7
~0(8
,(?
<02>/s@
~A
oB
+-o7
~>(8
,(?
<02>0s@
~A
oB
(6
*N{%-&*oC
*<2A>((- <20>(D
(E
(F
sG
**<2A>((-$#<00>?(H
(I
(J
sK
**0u 
,o**0u 
,o**BoL
3(*(*2~#(+*>~#(+&*>~&(+&*2~'(+*2~((+*>~((+&*2~*(+*2~+(+*>~+(+&*2~=(+*>~=(+&*>~>(+&*0yrAp(N
<14>sO
(+<2B>#rMp(+<2B>$rcp(+<2B>%r<>p(+<2B>&r<>p(+<2B>'r<>p(N
(9
<14>sQ
( +<2B>(r<>p(!+<2B>)r#p(!+<2B>*rAp(!+<2B>+r_p(!+<2B>,r<>p(!+<2B>-r<>p(!+<2B>.r<>p(!+<2B>/rp(!+<2B>0r?p(!+<2B>1ryp(!+<2B>2r<>p(!+<2B>3r<>p(!+<2B>4rp g("+<2B>5rpd("+<2B>6r1pd("+<2B>7rCp("+<2B>8rQp("+<2B>9rmp("+<2B>:rp(#+<2B>;r<>p("+<2B><r<>p($+<2B>=r<>p("+<2B>>*o*o0wu, <03> 
+Nu;,<03>; (S
+5u,<03> (<
+u<,
oT
+~U
*(V
-~U
*(<28>*~U
*{D*{E*0<00>u<1B> (W
u, <03> 
+Pu;,<03>;(S
+6u,<03>(<
+u<,
oT
+~U
*(5(4(8*0= -+oX
%-&~
(5(9
(
-~U
*(
<EFBFBD>*0<00>
,o3*(D
b(E
b`(F
b`(V
`
+((V
b(D
b`(E
b`(F
`
r<>p(Y
(Z
o[
+4(D
b(E
b`(F
`
r<>p(Y
(Z
o[
, r<>p(\
*0D o]
r<>po^
- r<>p(\
(_
(:,s`
*<01>*0<00> <04>(a
(b
.
(b
3a(b
Z <08><18><>sc
 +. Z(d
 (e
IS ZX(d
 (e
IS X (b
2<EFBFBD>(f
(<*(<*:}D(
*0<00> 
(b
33 <20>
+ <00>
+ (b
.* (Y
(g
-*,3b` +` 35 <20>_<>d <20>_<>d <20>_<>d <20>_<>sG
<EFBFBD>+3d <20>_<>d <20>_<>d <20>_<> <20>_<>sG
<EFBFBD>*.%-&~h
*0{uH
,*u,<03> #<00>?si
*u;,<03>; (S
#<00>?si
*u,<03> (<
#<00>?si
*~U
*0<00>u,<03>
<06>*u;,<03>; (S
<EFBFBD>*u,<03> (<
<EFBFBD>*u< ,g oT
(V
l oj
Z##<00>o@(k
<EFBFBD> oT
(D
oT
(E
oT
(F
sG
<EFBFBD>*~U
*(0*9<>{G:<3A>{H,{H<02>Ksl
om
{I,{I<02>Ksl
om
{J,{J<02>Ksl
om
{K,{K<02>Ksl
om
}G*:<3A>{G9<>{H,{H<02>Ksl
on
{I,{I<02>Ksl
on
{J,{J<02>Ksl
on
{K,{K<02>Ksl
on
}G*0n(Go1
r<EFBFBD>p(%+}Ho1
r5p(%+}Io1
rmp(%+}Jo1
r<EFBFBD>p(%+}K(G(5
*0Ao7
~L(8
,'( +
(<
(+
(<
soJ(6
*N{F%-&*oC
*0WuJ
 (L -+(o
%-&+oX
%-&r<>p(Y
(p
<0B>&<26>,~L(<28>(
+*.>2~L(+*07r<>p(q
(9
(&+<2B>Lr<>p('+<2B>M*(r
*0<00>(X
(V
<20>/3(\-(Y-#(s
r<EFBFBD>p(t
(s
r<EFBFBD>p(t
*(Z-([(T (<
+ (X(U (<28>#<00>?5#(s
r<EFBFBD>p(t
(s
r<EFBFBD>p(t
*(s
r<EFBFBD>p(t
(s
r<EFBFBD>p(t
*0+(u
}Y}Z}X|Y((+*<2A>(x
(y
(H
(y
(I
(y
(J
(y
sK
*0<00>(Y
(Z:<3A>([ (^,(Q E7c<00>*#(z
#Y@({
(x
#Y@Z(|
*#(z
#pv@({
(H
(|
*#(z
#Y@({
(I
#Y@Z(|
*#(z
#Y@({
(J
#Y@Z(|
*(X E2c<00>*#(z
#<00>o@({
(V
(}
(|
*#(z
#<00>o@({
(D
(}
(|
*#(z
#<00>o@({
(E
(}
(|
*#(z
#<00>o@({
(F
(}
(|
*0<00><00><01>(~
(
(<28>
Y[ (Y (Z:<3A>([ E$Ml8<>(H
(I
(J
(K
+e(x
#pv@Z(I
(J
(K
+<(x
(H
(J
(K
+(x
(H
(I
(K
(<
8<>(X#<00>o@Z##<00>o@(k
(<28>
 E"Bb+~(D
(E
(F
(G
+^(V
(E
(F
(G
+>(V
(D
(F
(G
+(V
(D
(E
(G
(9
(^,(Q
s<>
*0<00>(Y
(\(] -(,%#<00>?(H
(I
(J
(K
9<>YE(L+n(x
(H
#<00>?#<00>?sK
*(x
(H
(I
#<00>?sK
*(x
(H
#<00>?(J
sK
***0<00>(Y
(\(] -$,! <20>(D
(E
(F
(G
,ZYE.+B(V
(D
sG
*(V
(E
sG
*(V
(F
sG
***0|{O,(<28>
*o7
~Q(8
,U}O~T(X
(9
(
+(R(P(O( +( +soW}O8<>o7
~R(8
-6o7
~S(8
-$o7
~U(8
-o7
~V(8
,%}O(R(P(O}O8<>o7
~T(8
,e}O~Q([ (<
(+(R(P(O( + (<
(+ (<
soW}O8o7
~W(8
, (R8<>o7
~<7E>
(8
,){P%-&+o<>
}P(P(O8<>o7
~<7E>
(8
-'o7
~<7E>
(8
-o7
~<7E>
(8
9<EFBFBD>}O(X (S%{<7B>
{<7B>
(Z-!~T(
+~Q(<
(++~Q (+~T(9
(
+(O(XsoW}O(<28>
*N{N%-&*oC
*2~Q(+*2~R()+*2~S(*+*2~T(+*2~U(+*2~V(+*2~W(+*0<00>rAp(N
(++<2B>Qrp(,+<2B>RrMp(-+<2B>Sr<>p(N
(9
(.+<2B>TrAp(/+<2B>Ur=p(/+<2B>VrWp(/+<2B>W*0 <00>{X
{Z 9<>(<28>
(<28>
,B(<28>
o<EFBFBD>
(<28>
Z(<28>
}[(<28>
o<EFBFBD>
(<28>
Z(<28>
}\+6(<28>
(<28>
Z(<28>
}[(<28>
(<28>
Z(<28>
}\{[9{\9{[{\ZZs<>
}],o{]{[{\(<28>
(Z(Y([(\(](<28>o<>
(<28>
-A%
}X}^|Y(0{^|^<04>_%
}X(<28>
{P%-&+o<>
{]{[{\(<28>}P{Ps<>
(<28>
<EFBFBD>/{], {]o'
<EFBFBD>}]<04><1F>}X|Y(<28>
<EFBFBD><1F>}X|Y(<28>
*A4<00><00><00><00><00>`6|Y(<28>
*0<00>s<>
}d}e}| <20> <20> <20> <20>(
}<7D>###<00>?#<00>?(<28>
}<7D>(
(<28>}{(}}|#}}#}~(<28>}(}<7D>(<28>}<7D>(<28>}<7D>(<28>}<7D>(<28>}<7D>*0<00>(5
(fo1
r{p(1+}no1
r<EFBFBD>p(2+}ho1
r<EFBFBD>p(2+}oo1
r<EFBFBD>p(2+}io1
rp(3+}ko1
r?p(4+}jo1
rmp(3+}mo1
r<EFBFBD>p(4+}l{n,s{n<02>rs<>
o<EFBFBD>
{n<02>ss<>
o<EFBFBD>
{n<02>tsl
om
{n<02>us<>
o<EFBFBD>
{n<02>vs<>
o<EFBFBD>
{h,'{h~<7E>
(5+<02><06>s<>
(6+}f{o,'{o~<7E>
(7+<02><06>s<>
(8+}g{o,(<28>,{o(|(<28>(<28>
{do<>
-(w(q(n*:(<28>
(q*"(<28>
*0<00>{f%-&+o'
}f{g%-&+o'
}g{n,s{n<02>rs<>
o<EFBFBD>
{n<02>ss<>
o<EFBFBD>
{n<02>tsl
on
{n<02>us<>
o<EFBFBD>
{n<02>vs<>
o<EFBFBD>
*0<00>oL
... .(<28>
*o<>
<EFBFBD>x<18>x(<28>
  .37(}  E  +M +I  +C +?.35(}  E 
+  + +  ##YE*+:(<28>l(l+&(<28>l(<28>l+(<28>l(<28>l3
...
..+(<28>
<17> ..3 3+-+(~s<>(<28>(oo<>
*<2A>{o,(<28>, {o(<28>
(n(<28>
*<2A>{o,(<28>, {o(<28>
(n(<28>
*<2A>{o,(<28>, {o(<28>
(n(<28>
*0<00>o7
~<7E>(8
,m{`-T(|
}as<> (<28> ~<7E>(V
l#<00>o@[(<28>(
+}a(q(z( +}<7D>8*o7
~<7E>(8
,{a-(l( +}<7D>8<>o7
~<7E>(8
-o7
~<7E>(8
,b(<28> ( 2 g1 r<>ps<70>
z2  g1 r%ps<70>
z(};<3B>;~(w8so7
~<7E>(8
-o7
~<7E>(8
,^(<28>(<28>2d1 rips<70>
z2d1 r<>ps<70>
z(}9;<3B>(w8<>o7
~<7E>(8
-o7
~<7E>(8
,Y(<28> (<28>
 2 d1 r ps<70>
z
2
d1 rUps<70>
z(}  ;<3B> .|(w+to7
~<7E>(8
,(w+Zo7
~<7E>(8
,H(}  E +(<28>+(<28>+(<28>(w(6
*0P(~
}`s<> (<28> ~<7E>(x
(<28>(+}`(q(z(m*0(|
|<7C>(V
(V
3A|<7C>(D
(D
3-|<7C>(E
(E
3|<7C>(F
(F
<EFBFBD><16>+|<7C>(D
(D
3 (D
,@|<7C>(E
(E
3 (E
,#|<7C>(F
(F
3 (F
<16>++ `,E{<7B>s {_%-&+oC
{o,(<28>,{o(|(<28>(<28>
*0<00>(s
r<EFBFBD>p{b(t
{b,(s
r<EFBFBD>p{c(t
+(s
r<EFBFBD>p(t
({,#(s
r<EFBFBD>p(t
(s
r<EFBFBD>p(t
*(s
r<EFBFBD>p(t
(s
r<EFBFBD>p(t
*0Z}`}a(~ (x
(<28>
9<EFBFBD>#<00> (}E,,+={<7B>#<00>+({<7B>#<00>+{<7B>#<00> _,g#<00>?
(}E&&+4#<00>?}<7D>+"#<00>?}<7D>+#<00>v@}<7D>(<28> ~<7E>(<28>(+~<7E>(<28>(
+(q(n}a}`(m*0<00>{do<>
-*(<28>
(<28>
  (<28>
Z (<28>
  (<28>
Z {}{~(<28>
#@[  Y#@(<28>
 Y#@(<28>
X(<28>
(<28> 63 [ YZ X [ YZ X (<28>
i(<28>
i{}(<28>
i/+l{}7{}(<28>
iY/+l{~7{~(<28>
iY{dZX{do<>
Y(
o<EFBFBD>
 (~
(}  E""+. 
(I
}<7D>+ 
(J
}<7D>+ 
(H
}<7D> (o*0<00>{o-*{}#.{~#3 {oo+
*{oo+
(~(<28>{<7B>{l{<7B>l(k
}<7D>{<7B>{<7B>l#Y@[{<7B>l#Y@[(k
}<7D>{<7B>{<7B>l#Y@[{<7B>l#Y@[(k
}<7D>{{:3##{<7B>{lY{<7B>{Yl[{<7B>#Y@Z{<7B>lY{<7B>{<7B>Yl[{<7B>#Y@Z{<7B>lY{<7B>{<7B>Yl[{|. {|3#<00>?Y+#<00>?Y{|  E *4 +:+0+&+++{}Z
{~Z 8<>#
# {<7B>{3 #+'#<00>v@{<7B>{lYZ{<7B>{Yl[ {<7B>{<7B>3 #+1#<00>v@{<7B>#Y@Z{<7B>lYZ{<7B>{<7B>Yl[ {<7B>{<7B>3 #+1#<00>v@{<7B>#Y@Z{<7B>lYZ{<7B>{<7B>Yl[{<7B>{3 #+'{<7B>{lY{<7B>{Yl[#<00>?Y{<7B>{<7B>3 #+1{<7B>#Y@Z{<7B>lY{<7B>{<7B>Yl[#<00>?Y{<7B>{<7B>3 #+1{<7B>#Y@Z{<7B>lY{<7B>{<7B>Yl[#<00>?Y{|. {|3#<00>v@ Y e#<00>?Y+#<00>v@Ye#<00>?Y{|  E *4 +: 
 +0 
 +&
 +
 + 
 + 
 {}{~(<28>
#@[
#-DT<44>! @Z#<00>f@[#-DT<44>! @X(<28>
Z ZX

#-DT<44>! @Z#<00>f@[#-DT<44>! @X(<28>
Z ZX (<28>
{o [{oo<>
#@[Y(<28>
{o [{oo<>
#@[Y(<28>
(<28>
,{o,(<28>, {o(<28>
(n*:(no<>
*:(0X {n
(<28>
&}bo<>
o<EFBFBD>
<17>}co<>
o<>
o<>
(p(n(qo<>
*<2A>{b-*{no<>
(po<>
*<2A>}b}co<>
o<>
(n(qo<>
*0+!(u
}<7D>}<7D>}<7D>|<7C>(9+*0
 "
 #Y@[ #Y@[  #Y@[
#Y@[ 
 YlYYl[ YlYYl[ E~<00>:<00><8<> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D>#}<7D> #<00>?}<7D>8+ 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D>#}<7D> #<00>?}<7D>8p 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D>#}<7D> #<00>?}<7D>8<> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D>#}<7D>#N@}<7D>#^@}<7D> #<00>f@}<7D>
#n@}<7D> #<00>r@}<7D>8<> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D>#}<7D> #<00>?}<7D>8<> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
  YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D>#}<7D>#N@}<7D>#^@}<7D> #<00>f@}<7D>
#n@}<7D> #<00>r@}<7D>.3n {<7B>YX}<7D> {<7B>YX}<7D> {<7B>YX}<7D>  {<7B>YX}<7D>

{<7B>YX}<7D>  {<7B>YX}<7D>+x{<7B>YX}<7D>{<7B>YX}<7D>{<7B>YX}<7D>  {<7B>YX}<7D>

{<7B>YX}<7D>  {<7B>YX}<7D>o<>
(<28> {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
.@<40>(<28> {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
(<28> {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
 (<28>{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>

(<28>{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
 (<28>{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
*0
<00> #
 #Y@[  #Y@[ 
#Y@[ #Y@[Y#@(<28>
Y#@(<28>
X(<28>
6[YZX[YZX 
   #<00>?[YYY(<28>
#<00>f@Z#-DT<44>! @[#<00>f@X(<28>
+#<00>v@Y#<00>v@0<>#<00>v@[E~<00>:<00><8<> 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> #}<7D>#<00>?}<7D>8+ 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
    YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> #}<7D>#<00>?}<7D>8p 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> #}<7D>#<00>?}<7D>8<> 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
    YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> #}<7D>
#N@}<7D> #^@}<7D> #<00>f@}<7D> #n@}<7D>#<00>r@}<7D>8<> 
    YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> #}<7D>#<00>?}<7D>8<> 
    YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> 
   YZX%}<7D>%}<7D>%}<7D>%}<7D>%}<7D>}<7D> #}<7D>
#N@}<7D> #^@}<7D> #<00>f@}<7D> #n@}<7D>#<00>r@}<7D>.3n  {<7B>YX}<7D>

{<7B>YX}<7D>  {<7B>YX}<7D>  {<7B>YX}<7D>  {<7B>YX}<7D> {<7B>YX}<7D>+x  {<7B>YX}<7D>

{<7B>YX}<7D>  {<7B>YX}<7D>  {<7B>YX}<7D>  {<7B>YX}<7D>{<7B>YX}<7D> o<>
 (<28> {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
.@<40>
(<28> {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 {<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
 (<28>{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
 (<28>{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
 (<28>{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
(<28>{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
{<7B>#<00>o@Z(<28>
<EFBFBD>o<EFBFBD>
 <20>o<>
*0 ${l,{m,{j,{k-*(~
(} E<00><00>*{v,{w-*{vs<>
{ws<>
{l(I
o<EFBFBD>
{m(I
o<EFBFBD>
{jo<>
{ko<>
{l o<>
{l o<>
*{x-*{xs<>
{xs<>
{l#<00>?o<>
{m#<00>?o<>
{jo<>
{ko<>
{lo<>
{lo<>
*{p,({q, {r,{s,{t,{u-*(H
#N@[#<00>?4{ps<>
{qs<>
8<>#<00>?7,#@4{qs<>
{rs<>
8<>#@7,#@4{rs<>
{ss<>
8<>#@7)#@4{ss<>
{ts<>
+P#@7)#@4{ts<>
{us<>
+{us<>
{ps<>
{lilYo<59>
{milYo<59>
{jo<>
{ko<>
{lo<>
{lo<>
*0k%(}. (}3=(~ (H
(I
#<00>?s<> (<28> (x
(<28>
+(|
(<28>#<00>?<3F><16>*2~<7E>(+*2~<7E>(:+*2~<7E>(+*2~<7E>(;+*2~<7E>(;+*2~<7E>(;+*2~<7E>(;+*2~<7E>(;+*2~<7E>(;+*2~<7E>(<+*{e*R~<7E>|e(=+&*0 rAp(N
(>+<2B><>r<>p(?+<2B><>r<>p(N
(9
(@+<2B><>rp g(A+<2B><>rpd(A+<2B><>r1pd(A+<2B><>rCp(A+<2B><>rQp(A+<2B><>rmp(A+<2B><>r<>p(B+<2B><>r<>p~<7E><04><06>s<>
(C+<2B><>*(w*(q*.s<><06><>*o<>*0V&{<7B>:<3A>{<7B>Y
8<EFBFBD>{<7B>Y +sll{<7B>{<7B>{<7B>{<7B>l{<7B>l{<7B>l{<7B>l{<7B>l{<7B>l{<7B>{<7B>{<7B>{<7B>{<7B>{<7B>{<7B>(xY /<2F>Y
<s<><73><EFBFBD>* 8<> 8<>{<7B> ll{<7B>l#@[{<7B>{<7B>{<7B>l{<7B>l{<7B>l{<7B>l{<7B>l{<7B>l{<7B>{<7B>{<7B>{<7B>{<7B>{<7B>{<7B>(y X {<7B>?p<><70><EFBFBD>X {<7B>?Y<><59><EFBFBD>*0'{<7B>
{<7B> {<7B>(} {<7B>{<7B>(<28>}y{<7B>{<7B>(<28>}zEbb<00><00>8<>{<7B>{v%-&+o<>
{<7B>{<7B>{y}v{<7B>{w%-&+o<>
{<7B>{<7B>{z}w8A{<7B>{x%-&+o<>
{<7B>{<7B>{z}x8{<7B>{p%-&+o<>
{<7B>{<7B>{y}p{<7B>{q%-&+o<>
{<7B>{<7B>(<28>}q{<7B>{r%-&+o<>
{<7B>{<7B>(<28>}r{<7B>{s%-&+o<>
{<7B>{<7B>(<28>}s{<7B>{t%-&+o<>
{<7B>{<7B>(<28>}t{<7B>{u%-&+o<>
{<7B>{<7B>{z}u{<7B>{<7B>(<28>}{{<7B>{<7B>(}}|{<7B>{<7B>l}}{<7B>{<7B>l}~{<7B>{<7B>(<28>}{<7B>{<7B>(}<7D>{<7B>{<7B>(<28>}<7D>{<7B>{<7B>(<28>}<7D>{<7B>{<7B>(<28>}<7D>{<7B>{<7B>(<28>}<7D>{<7B>{<7B>}d{<7B>(z{<7B>(q*0_({<7B>
{<7B> C<>s<>}<7D>{<7B>{<7B>}<7D>{h,0{i,({n, {j,{k,{l,{m-<05><>{ho<>
(<28>
{ho<>
(<28>
(<28>
#3ݗ{io<>
{io<>
{no<>
{no<>
{jo<>
{jo<>
{ko<>
{ko<>
{lo<>
{lo<>
{mo<>
{mo<>
(~ {<7B>(<28>}<7D>{<7B>(}<7D>{<7B>(<28>}<7D>{<7B>(<28>}<7D>{<7B>(<28>}<7D>{<7B>(<28>}<7D>{<7B>(<28>}<7D>{<7B>(}}<7D>{<7B>{<7B>{<7B>{<7B>2{<7B>{<7B>{<7B>}<7D>{<7B>{<7B>{<7B>{<7B>2{<7B>{<7B>{<7B>}<7D>{<7B>{<7B>{<7B>{<7B>2{<7B>{<7B>{<7B>}<7D>{<7B> s<>}<7D>(<28>
{<7B>Z(<28>
i}<7D>{<7B>{<7B>{<7B>{<7B>ZZ{<7B>{<7B>

Y5 +  -+{<7B>s<>
}<7D>{<7B>s<>
}<7D>6{<7B>s<>
}<7D>6{<7B>s<>
}<7D>6{<7B>s<>
}<7D>6{<7B>s<>
}<7D>6{<7B>s<>
}<7D>,Q;<3B>{<7B><04><06>s@
(<28>
o<EFBFBD>
  (<28>
-A%
}<7D> }<7D>|<7C> (D{<7B> |<7C><04>_%
}<7D> (<28>
(?
{<7B><04><06>s@
o<EFBFBD>
o<EFBFBD>
  (<28>
-A%
}<7D> }<7D>|<7C> (D+<2B>/{<7B> |<7C><04>_%
}<7D> (<28>
<EFBFBD><EFBFBD>/{<7B>{<7B>,{<7B>{<7B>o'
<EFBFBD>/{<7B>{<7B>,{<7B>{<7B>o'
<EFBFBD>/{<7B>{<7B>,{<7B>{<7B>o'
<EFBFBD>/{<7B>{<7B>,{<7B>{<7B>o'
<EFBFBD>/{<7B>{<7B>,{<7B>{<7B>o'
<EFBFBD>/{<7B>{<7B>,{<7B>{<7B>o'
<EFBFBD> <1F>}<7D>}<7D>|<7C> (<28>
<EFBFBD><1F>}<7D>}<7D>|<7C>(<28>
*A<>h<00>X"P*z"8d<00>" <00><00>"<00><00>"<00>"$ `6|<7C>(<28>
*0)(D

1,(D
l#<00>p@[#Nё\<5C>C<EFBFBD>?X#333333@(<28>
+(D
l#<00><>@[
(E

1,(E
l#<00>p@[#Nё\<5C>C<EFBFBD>?X#333333@(<28>
+(E
l#<00><>@[ (F

1,(F
l#<00>p@[#Nё\<5C>C<EFBFBD>?X#333333@(<28>
+(F
l#<00><>@[ #<23><><EFBFBD>z6<7A>?Z#<23>,C<1C><><EFBFBD>?ZX#]m<><6D><EFBFBD>{<7B>?ZX*Z(<28>
o<EFBFBD>
r po^
*0'*(9
(V
- <20><><EFBFBD>(<28>*#<00>?(H
(<28>
(I
(<28>
(J
(<28>
(K
~<7E>(
~<7E>o<>
, ݦ<00> ,(
<EFBFBD>~<7E>(
~<7E>o<>
-A+1~<7E><08> ~<7E> o<>
-~<7E>  (<28>o<>
X~<7E><04>i2<69><32> ,(
<EFBFBD> #<00> 
8<EFBFBD>~<7E>
<EFBFBD>  <20><><EFBFBD>.} (<28>
(9
 (H
 (H
Y#@(<28>
(I
 (I
Y#@(<28>
X(J
 (J
Y#@(<28>
X(<28>
  4  
X

~<7E><04>i?\<5C><><EFBFBD>,i~<7E>(
~<7E>o<>
-(<28><0F> ,(
<EFBFBD>~<7E>(
~<7E>o<>
<EFBFBD> ,(
<EFBFBD>*~
**4]#<23> <00>X<> <00>"<22> <00> 0V+(<28>
<00><16>oX
 +,,o<>
(<28>
,  o<>
&o<>
o<EFBFBD>
&X o<>
2<EFBFBD>(<28>
*<2A>s<EFBFBD>
<EFBFBD><EFBFBD>s<>
<EFBFBD><EFBFBD>s
<EFBFBD><EFBFBD>s
<EFBFBD><EFBFBD>(E+<2B><>*0r,s<>
}<7D>}<7D>}<7D>}<7D>}<7D>}<7D>}<7D>}<7D>}<7D>{<7B>,{<7B>-(<28>
*<06><06>s<>
(F+*0C-
,
(<28>:<3A>|<7C>%O#Y@ZW|<7C>%O#Y@ZW|<7C> # YE*+<|<7C> ,+l +3|<7C> ,
+l +|<7C> ,
+l + r ps<70>
zO O,+eXWO4, .+WO6, .+W|<7C>%O#Y@[W|<7C>%O#Y@[W+3.3#Y@[#Y@[(<28>
*0<.
(<28>#<00>?(<28>(<28>  # |<7C>#YE<+W{<7B> |<7C>#<00>?+E{<7B> |<7C>#{<14>G<EFBFBD>z<EFBFBD>?+({<7B> |<7C>#{<14>G<EFBFBD>z<EFBFBD>?+ r ps<70>
z8<>OO,+lZXW O69,
W +iW(<28>#<00>?(<28>(<28> 8<>O46,
W +)W(<28>#<00>?(<28>(<28> +N - .O Y(<28>
 Y(<28>
.++(<28>#<00>?(<28>(<28> (<28>
:<1B><><EFBFBD>9<>

 #  
|<7C> |<7C>#YE$F+c
|<7C> |<7C>#<00>v@8<>
|<7C> |<7C>#<00>?8<>
|<7C> |<7C>#<00>?+{r ps<70>
zO,+lZXWO6,WY +&W+IO4,WY +W+* (<28>#<00>?(<28>(<28>  (<28>
-<2D>OOX X#@[WO(<28>
+Y0<>OYW+ OXWO2<>+ OYWO0<>*0E/o<>
(<28>
<07>
(<28>
s
s
#X@#X@s
Zs
*(0W0 (N
}<7D>{<7B>&{<7B>Z{<7B>-={<7B>,5#<00>?|<7C>(H
|<7C>(I
|<7C>(J
sK
}<7D>{<7B>3|<7C>(<
}<7D>{<7B>9y{<7B>9n{<7B>:<3A>{<7B>YE=w8A|<7C>(x
|<7C>(H
#<00>?#<00>?sK
}<7D>8 |<7C>(x
|<7C>(H
|<7C>(I
#<00>?sK
}<7D>8<>|<7C>(x
|<7C>(H
#<00>?|<7C>(J
sK
}<7D>8<>{<7B>YE*R+v|<7C>(V
|<7C>(D
sG
}<7D>+N|<7C>(V
|<7C>(E
sG
}<7D>+&|<7C>(V
|<7C>(F
sG
}<7D>{<7B>:<3A>{<7B>-1{<7B>3#<00>v@{<7B>l[ +&#<00>?{<7B>l[ +#<00>o@{<7B>l[ 8?8$:<3A>lZ(<28> {<7B>(F
(V
Z <20>[(
o
{<7B>X(E
(V
Z <20>[(
o
{<7B>X(D
(V
Z <20>[(
o
{<7B>X(V
o
+x{<7B>{<7B>Yo
o
{<7B>X{<7B>XYo
o
{<7B>X{<7B>XYo
o
{<7B>X{<7B>XYo
o
X X{<7B>?<3F><><EFBFBD><EFBFBD>X{<7B>?<3F><><EFBFBD><EFBFBD>8<EFBFBD>{<7B>-1{<7B>3#<00>v@{<7B>l[ +&#<00>?{<7B>l[ +#<00>o@{<7B>l[ 8> 8# :<3A>{<7B>YYlZ(<28> {<7B>(F
(V
Z <20>[(
o
{<7B>X(E
(V
Z <20>[(
o
{<7B>X(D
(V
Z <20>[(
o
{<7B>X(V
o
+n{<7B>{<7B>Yo
o
{<7B>X{<7B>Yo
o
{<7B>X{<7B>Yo
o
{<7B>X{<7B>Yo
o
X  X  {<7B>?<3F><><EFBFBD><EFBFBD>X{<7B>?<3F><><EFBFBD><EFBFBD>{<7B>*0z1(N
{<7B> E<00><00>18P{<7B>-D##<00>v@(k
|<7C>(I
|<7C>(J
|<7C>(x
(
8|<7C>(V
##<00>o@(k
(<28>
|<7C>(E
|<7C>(F
(G
8<EFBFBD>{<7B>-D|<7C>(H
##<00>?(k
|<7C>(J
|<7C>(x
(
8n|<7C>(V
|<7C>(D
##<00>o@(k
(<28>
|<7C>(F
(G
8${<7B>-D|<7C>(H
|<7C>(I
##<00>?(k
|<7C>(x
(
8<EFBFBD>|<7C>(V
|<7C>(D
|<7C>(E
##<00>o@(k
(<28>
(G
8<EFBFBD>{<7B>-A|<7C>(H
|<7C>(I
|<7C>(J
##<00>?(k
(
+E##<00>o@(k
(<28>
|<7C>(D
|<7C>(E
|<7C>(F
(G
*Z}<7D>}<7D>}<7D>*<2A>(H
}<7D>(I
}<7D>(J
}<7D>*f{<7B>{<7B>{<7B>(<28>
*<2A>{<7B>{<7B>{<7B>#<00>?(
s<EFBFBD>*0I(D
l#<00>o@[}<7D>(E
l#<00>o@[}<7D>(F
l#<00>o@[}<7D>*0<00>#<00>o@Z##<00>o@(k
<EFBFBD>{<7B>#<00>o@Z##<00>o@(k
<EFBFBD>{<7B>#<00>o@Z##<00>o@(k
<EFBFBD>{<7B>#<00>o@Z##<00>o@(k
<EFBFBD>(
*0k{<7B>##<00>?(k
{<7B>##<00>?(k
{<7B>##<00>?(k
#<00>?(
s<EFBFBD>*02<01><02>u,<03>  (`
+]u;,<03>;(S
(`
+=u,<03>( 
+"u<,oT
(`
+~U
*-+oX
%-&rA p(Y
(p
<EFBFBD>
&~U
<07>](

- (
,( 
(9
( 
(

,%( 
(<28>  (<
#<00>?si
*~U
**<00>"<22>
0@3,;(J
l#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?ZX
(<28>
(x
(H
(I
sK
**{<7B>*0<00>4<01>{<7B>oC u, <08>
+~U
*{<7B>oCu,<04>(`
(V
(<28>/(
,( 
#<00>?si
*(<28>#<00>?5(N
#<00>?si
*( 
#<00>?si
*vsE}<7D> <20>}<7D>(
*.rC ps
z.rC ps
z<00><><ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
xmlns:primitives="using:Avalonia.Controls.Primitives"
x:ClassModifier="internal">
<PlacementMode x:Key="ColorPickerFlyoutPlacement">Top</PlacementMode>
<ControlTheme x:Key="{x:Type ColorPicker}"
TargetType="ColorPicker">
<Setter Property="CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
<!-- Alpha position should match CSS (and default slider order) instead of XAML/WinUI -->
<Setter Property="HexInputAlphaPosition" Value="Trailing" />
<Setter Property="Height" Value="32" />
<Setter Property="Width" Value="64" />
<Setter Property="MinWidth" Value="64" />
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Content">
<Template>
<Panel>
<Border Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="1,1,0,1" />
<Border Background="{TemplateBinding HsvColor, Converter={StaticResource ToBrushConverter}}"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="1,1,0,1" />
</Panel>
</Template>
</Setter>
<Setter Property="Palette">
<controls:FluentColorPalette />
</Setter>
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorPicker}">
<DropDownButton CornerRadius="{TemplateBinding CornerRadius}"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Width}"
Content="{TemplateBinding Content}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Padding="0,0,10,0"
UseLayoutRounding="False">
<DropDownButton.Styles>
<Style Selector="FlyoutPresenter.nopadding">
<Setter Property="Padding" Value="0" />
</Style>
</DropDownButton.Styles>
<DropDownButton.Flyout>
<Flyout FlyoutPresenterClasses="nopadding"
Placement="{DynamicResource ColorPickerFlyoutPlacement}">
<!-- The following is copy-pasted from the ColorView's control template.
It MUST always be kept in sync with the ColorView (which is master).
Note the only changes are resources specific to the ColorPicker. -->
<Grid RowDefinitions="Auto,Auto">
<Grid.Resources>
<!-- This radius must follow OverlayCornerRadius -->
<CornerRadius x:Key="ColorViewTabBackgroundCornerRadius">5,5,0,0</CornerRadius>
</Grid.Resources>
<!-- Backgrounds -->
<!-- TODO: Background="{DynamicResource ColorViewTabBackgroundBrush}" -->
<Border x:Name="TabBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Height="48"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Background="{DynamicResource SystemControlBackgroundBaseLowBrush}"
BorderBrush="{DynamicResource ColorViewTabBorderBrush}"
CornerRadius="{DynamicResource ColorViewTabBackgroundCornerRadius}" />
<Border x:Name="ContentBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Margin="0,48,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource BottomCornerRadiusFilterConverter}}"
Background="{DynamicResource ColorViewContentBackgroundBrush}"
BorderBrush="{DynamicResource ColorViewContentBorderBrush}"
BorderThickness="0,1,0,0" />
<TabControl x:Name="PART_TabControl"
Grid.Row="0"
Height="338"
Width="350"
Padding="0"
SelectedIndex="{Binding SelectedIndex, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}">
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="0"
Rows="1" />
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
<!-- Spectrum Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorSpectrumVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewSpectrumIconGeometry}" />
</Border>
</TabItem.Header>
<Grid RowDefinitions="*"
Margin="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
MinWidth="32" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"
MinWidth="32" />
</Grid.ColumnDefinitions>
<primitives:ColorSlider x:Name="ColorSpectrumThirdComponentSlider"
AutomationProperties.Name="Third Component"
Grid.Column="0"
IsAlphaVisible="False"
IsPerceptive="True"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="{Binding ThirdComponent, ElementName=ColorSpectrum}"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="0,0,12,0"
IsVisible="{TemplateBinding IsColorSpectrumSliderVisible}" />
<primitives:ColorSpectrum x:Name="ColorSpectrum"
Grid.Column="1"
Components="{TemplateBinding ColorSpectrumComponents}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
MinHue="{TemplateBinding MinHue}"
MaxHue="{TemplateBinding MaxHue}"
MinSaturation="{TemplateBinding MinSaturation}"
MaxSaturation="{TemplateBinding MaxSaturation}"
MinValue="{TemplateBinding MinValue}"
MaxValue="{TemplateBinding MaxValue}"
Shape="{TemplateBinding ColorSpectrumShape}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<primitives:ColorSlider x:Name="ColorSpectrumAlphaSlider"
AutomationProperties.Name="Alpha Component"
Grid.Column="2"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="Alpha"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="12,0,0,0"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
<!-- Palette Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorPaletteVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewPaletteIconGeometry}" />
</Border>
</TabItem.Header>
<ListBox Theme="{StaticResource ColorViewPaletteListBoxTheme}"
ItemContainerTheme="{StaticResource ColorViewPaletteListBoxItemTheme}"
ItemsSource="{TemplateBinding PaletteColors}"
SelectedItem="{Binding Color, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource DoNothingForNullConverter}, Mode=TwoWay}"
UseLayoutRounding="False"
Margin="12">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type Color}">
<Border AutomationProperties.Name="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
ToolTip.Tip="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Border.Background>
<SolidColorBrush Color="{Binding}" />
</Border.Background>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding $parent[ColorView].PaletteColumnCount}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</TabItem>
<!-- Components Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorComponentsVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewComponentsIconGeometry}" />
</Border>
</TabItem.Header>
<Grid ColumnDefinitions="Auto,Auto,*"
RowDefinitions="Auto,24,1*,1*,1*,1*,12"
Margin="12">
<!-- Top color model & Hex input -->
<Grid Grid.Column="0"
Grid.ColumnSpan="3"
Grid.Row="0"
ColumnDefinitions="1*,12,1*">
<!-- Content RGB/HSV names are hard-coded and considered universal -->
<!-- RadioButtons are styled to look like a 'SegmentedControl' or 'ButtonGroup' -->
<Grid ColumnDefinitions="1*,1*"
IsVisible="{TemplateBinding IsColorModelVisible}">
<RadioButton x:Name="RgbRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="0"
Content="RGB"
CornerRadius="4,0,0,4"
BorderThickness="1,1,0,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=TwoWay}" />
<RadioButton x:Name="HsvRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="1"
Content="HSV"
CornerRadius="0,4,4,0"
BorderThickness="0,1,1,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=TwoWay}" />
</Grid>
<Grid x:Name="HexInputGrid"
Grid.Column="2"
IsVisible="{TemplateBinding IsHexInputVisible}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
Height="32"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="#"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
<!-- Color updated in code-behind -->
<!-- Max length must include an optional '#' prefix (#FFFFFFFF) -->
<TextBox x:Name="PART_HexTextBox"
Grid.Column="1"
AutomationProperties.Name="Hexadecimal Color"
Height="32"
MaxLength="9"
HorizontalAlignment="Stretch"
CornerRadius="0,4,4,0" />
</Grid>
</Grid>
<!-- Color component editing controls -->
<!-- Component 1 RGB:Red HSV:Hue -->
<Border Grid.Column="0"
Grid.Row="2"
Height="{Binding ElementName=Component1NumericUpDown, Path=Bounds.Height}"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="R"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="H"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component1NumericUpDown"
Grid.Column="1"
Grid.Row="2"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component1Slider}"
Maximum="{Binding Maximum, ElementName=Component1Slider}"
Value="{Binding Value, ElementName=Component1Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component1Slider"
Grid.Column="2"
Grid.Row="2"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component1"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 2 RGB:Green HSV:Saturation -->
<Border Grid.Column="0"
Grid.Row="3"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component2NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="G"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="S"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component2NumericUpDown"
Grid.Column="1"
Grid.Row="3"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component2Slider}"
Maximum="{Binding Maximum, ElementName=Component2Slider}"
Value="{Binding Value, ElementName=Component2Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component2Slider"
Grid.Column="2"
Grid.Row="3"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component2"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 3 RGB:Blue HSV:Value -->
<Border Grid.Column="0"
Grid.Row="4"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component3NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="B"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="V"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component3NumericUpDown"
Grid.Column="1"
Grid.Row="4"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component3Slider}"
Maximum="{Binding Maximum, ElementName=Component3Slider}"
Value="{Binding Value, ElementName=Component3Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component3Slider"
Grid.Column="2"
Grid.Row="4"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component3"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Alpha Component -->
<Border Grid.Column="0"
Grid.Row="5"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=AlphaComponentNumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<TextBlock x:Name="AlphaComponentTextBlock"
Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="A"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Border.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</Border.IsVisible>
</Border>
<NumericUpDown x:Name="AlphaComponentNumericUpDown"
Grid.Column="1"
Grid.Row="5"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=AlphaComponentSlider}"
Maximum="{Binding Maximum, ElementName=AlphaComponentSlider}"
Value="{Binding Value, ElementName=AlphaComponentSlider}"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<NumericUpDown.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</NumericUpDown.IsVisible>
</NumericUpDown>
<primitives:ColorSlider x:Name="AlphaComponentSlider"
Grid.Column="2"
Grid.Row="5"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Alpha"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentSliderVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
</TabControl>
<!-- Previewer -->
<!-- Note that the drop shadow is allowed to extend past the control bounds -->
<primitives:ColorPreviewer Grid.Row="1"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
IsAccentColorsVisible="{TemplateBinding IsAccentColorsVisible}"
Margin="12,0,12,12"
IsVisible="{TemplateBinding IsColorPreviewVisible}" />
</Grid>
</Flyout>
</DropDownButton.Flyout>
</DropDownButton>
</ControlTemplate>
</Setter>
<!--
<Style Selector="^ /template/ primitives|ColorSlider#ColorSpectrumThirdComponentSlider[ColorComponent=Component1]">
<Setter Property="IsPerceptive" Value="True" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component1Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component2Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component3Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
-->
</ControlTheme>
</ResourceDictionary>
<EFBFBD><ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
x:ClassModifier="internal">
<pc:AccentColorConverter x:Key="AccentColorConverter" />
<x:Double x:Key="ColorPreviewerAccentSectionWidth">80</x:Double>
<x:Double x:Key="ColorPreviewerAccentSectionHeight">40</x:Double>
<ControlTheme x:Key="{x:Type ColorPreviewer}"
TargetType="ColorPreviewer">
<Setter Property="Height" Value="50" />
<!-- The preview color drop shadow is allowed to extend outside the control bounds -->
<Setter Property="ClipToBounds" Value="False" />
<Setter Property="CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorPreviewer}">
<Panel>
<!-- Preview color with accents to the left and right -->
<Grid ColumnDefinitions="Auto,*,Auto"
IsVisible="{TemplateBinding IsAccentColorsVisible}">
<!-- Left accent colors -->
<Grid Grid.Column="0"
Height="{StaticResource ColorPreviewerAccentSectionHeight}"
Width="{StaticResource ColorPreviewerAccentSectionWidth}"
ColumnDefinitions="*,*"
VerticalAlignment="Center">
<Border Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}" />
<Border x:Name="PART_AccentDecrement2Border"
Grid.Column="0"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}"
Tag="-2"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='-2'}" />
<Border x:Name="PART_AccentDecrement1Border"
Grid.Column="1"
Tag="-1"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='-1'}" />
</Grid>
<!-- Right accent colors -->
<Grid Grid.Column="2"
Height="{StaticResource ColorPreviewerAccentSectionHeight}"
Width="{StaticResource ColorPreviewerAccentSectionWidth}"
ColumnDefinitions="*,*"
VerticalAlignment="Center">
<Border Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}" />
<Border x:Name="PART_AccentIncrement1Border"
Grid.Column="0"
Tag="1"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='1'}" />
<Border x:Name="PART_AccentIncrement2Border"
Grid.Column="1"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource RightCornerRadiusFilterConverter}}"
Tag="2"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='2'}" />
</Grid>
<!-- Preview color: Must be last for drop shadow Z-index -->
<Border Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
BoxShadow="0 0 10 2 #BF000000"
CornerRadius="{TemplateBinding CornerRadius}">
<Panel>
<Border Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{TemplateBinding CornerRadius}" />
<Border CornerRadius="{TemplateBinding CornerRadius}"
Background="{TemplateBinding HsvColor, Converter={StaticResource ToBrushConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</Panel>
</Border>
</Grid>
<!-- Only preview color -->
<Border CornerRadius="{TemplateBinding CornerRadius}"
IsVisible="{TemplateBinding IsAccentColorsVisible, Converter={x:Static BoolConverters.Not}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Panel>
<Border Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{TemplateBinding CornerRadius}" />
<Border CornerRadius="{TemplateBinding CornerRadius}"
Background="{TemplateBinding HsvColor, Converter={StaticResource ToBrushConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</Panel>
</Border>
</Panel>
</ControlTemplate>
</Setter>
</ControlTheme>
</ResourceDictionary>
<EFBFBD>'<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:ClassModifier="internal">
<!-- Note that the Slider thumb should generally follow the overall Slider dimensions.
Therefore, there are not currently separate resources to control it. -->
<x:Double x:Key="ColorSliderSize">20</x:Double>
<x:Double x:Key="ColorSliderTrackSize">20</x:Double>
<CornerRadius x:Key="ColorSliderCornerRadius">10</CornerRadius>
<CornerRadius x:Key="ColorSliderTrackCornerRadius">10</CornerRadius>
<ControlTheme x:Key="ColorSliderThumbTheme"
TargetType="Thumb">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{DynamicResource SystemControlForegroundBaseHighBrush}" />
<!--TODO: <Setter Property="BorderBrush" Value="{DynamicResource ColorControlDefaultSelectorBrush}" />-->
<Setter Property="BorderThickness" Value="3" />
<Setter Property="CornerRadius" Value="{DynamicResource ColorSliderCornerRadius}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</ControlTheme>
<ControlTheme x:Key="{x:Type ColorSlider}"
TargetType="ColorSlider">
<Style Selector="^:horizontal">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="{DynamicResource ColorSliderCornerRadius}" />
<Setter Property="Height" Value="{DynamicResource ColorSliderSize}" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorSlider}">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="{TemplateBinding CornerRadius}">
<Grid Margin="{TemplateBinding Padding}">
<Border HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Height="{Binding ElementName=PART_Track, Path=Bounds.Height}"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Border HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Height="{Binding ElementName=PART_Track, Path=Bounds.Height}"
Background="{TemplateBinding Background}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Track Name="PART_Track"
Height="{DynamicResource ColorSliderTrackSize}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Minimum="{TemplateBinding Minimum}"
Maximum="{TemplateBinding Maximum}"
Value="{TemplateBinding Value, Mode=TwoWay}"
IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
Orientation="Horizontal">
<Track.DecreaseButton>
<RepeatButton Name="PART_DecreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.DecreaseButton>
<Track.IncreaseButton>
<RepeatButton Name="PART_IncreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.IncreaseButton>
<Thumb Name="ColorSliderThumb"
Theme="{DynamicResource ColorSliderThumbTheme}"
Margin="0"
Padding="0"
DataContext="{TemplateBinding Value}"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Height}" />
</Track>
</Grid>
</Border>
</ControlTemplate>
</Setter>
</Style>
<Style Selector="^:vertical">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="{DynamicResource ColorSliderCornerRadius}" />
<Setter Property="Width" Value="{DynamicResource ColorSliderSize}" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorSlider}">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="{TemplateBinding CornerRadius}">
<Grid Margin="{TemplateBinding Padding}">
<Border HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Width="{Binding ElementName=PART_Track, Path=Bounds.Width}"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Border HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Width="{Binding ElementName=PART_Track, Path=Bounds.Width}"
Background="{TemplateBinding Background}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Track Name="PART_Track"
Width="{DynamicResource ColorSliderTrackSize}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Minimum="{TemplateBinding Minimum}"
Maximum="{TemplateBinding Maximum}"
Value="{TemplateBinding Value, Mode=TwoWay}"
IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
Orientation="Vertical">
<Track.DecreaseButton>
<RepeatButton Name="PART_DecreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.DecreaseButton>
<Track.IncreaseButton>
<RepeatButton Name="PART_IncreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.IncreaseButton>
<Thumb Name="ColorSliderThumb"
Theme="{DynamicResource ColorSliderThumbTheme}"
Margin="0"
Padding="0"
DataContext="{TemplateBinding Value}"
Height="{TemplateBinding Width}"
Width="{TemplateBinding Width}" />
</Track>
</Grid>
</Border>
</ControlTemplate>
</Setter>
</Style>
<!-- Selector/Thumb Color -->
<Style Selector="^:pointerover /template/ Thumb#ColorSliderThumb">
<Setter Property="Opacity" Value="0.75" />
</Style>
<Style Selector="^:pointerover:dark-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="Opacity" Value="0.7" />
</Style>
<Style Selector="^:pointerover:light-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="Opacity" Value="0.8" />
</Style>
<Style Selector="^:dark-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="BorderBrush" Value="{DynamicResource ColorControlDarkSelectorBrush}" />
</Style>
<Style Selector="^:light-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="BorderBrush" Value="{DynamicResource ColorControlLightSelectorBrush}" />
</Style>
</ControlTheme>
</ResourceDictionary>
<EFBFBD><ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
x:ClassModifier="internal">
<ControlTheme x:Key="{x:Type ColorSpectrum}"
TargetType="ColorSpectrum">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ColorSpectrum}">
<Panel x:Name="PART_LayoutRoot"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Panel x:Name="PART_SizingPanel"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ClipToBounds="True">
<Rectangle x:Name="PART_SpectrumRectangle"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Box}}"
RadiusX="{TemplateBinding CornerRadius, Converter={StaticResource TopLeftCornerRadiusConverter}}"
RadiusY="{TemplateBinding CornerRadius, Converter={StaticResource BottomRightCornerRadiusConverter}}" />
<Rectangle x:Name="PART_SpectrumOverlayRectangle"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Box}}"
RadiusX="{TemplateBinding CornerRadius, Converter={StaticResource TopLeftCornerRadiusConverter}}"
RadiusY="{TemplateBinding CornerRadius, Converter={StaticResource BottomRightCornerRadiusConverter}}" />
<Ellipse x:Name="PART_SpectrumEllipse"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Ring}}" />
<Ellipse x:Name="PART_SpectrumOverlayEllipse"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Ring}}" />
<Canvas x:Name="PART_InputTarget"
Background="Transparent"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<!-- Note: ToolTip.VerticalOffset is for touch devices to keep the tip above fingers -->
<Panel x:Name="PART_SelectionEllipsePanel"
ToolTip.VerticalOffset="-10"
ToolTip.Placement="Top">
<Ellipse x:Name="FocusEllipse"
Margin="-2"
StrokeThickness="2"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<Ellipse x:Name="SelectionEllipse"
StrokeThickness="2"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<ToolTip.Tip>
<!-- Set in code-behind -->
</ToolTip.Tip>
</Panel>
</Canvas>
<Rectangle x:Name="BorderRectangle"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Box}}"
RadiusX="{TemplateBinding CornerRadius, Converter={StaticResource TopLeftCornerRadiusConverter}}"
RadiusY="{TemplateBinding CornerRadius, Converter={StaticResource BottomRightCornerRadiusConverter}}" />
<Ellipse x:Name="BorderEllipse"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Ring}}" />
</Panel>
</Panel>
</ControlTemplate>
</Setter.Value>
</Setter>
<!-- Normal -->
<!-- Separating this allows easier customization in applications -->
<Style Selector="^ /template/ Ellipse#BorderEllipse,
^ /template/ Rectangle#BorderRectangle">
<Setter Property="Stroke" Value="{DynamicResource SystemControlForegroundListLowBrush}" />
<Setter Property="StrokeThickness" Value="1" />
</Style>
<!-- Focus -->
<Style Selector="^ /template/ Ellipse#FocusEllipse">
<Setter Property="IsVisible" Value="False" />
</Style>
<Style Selector="^:focus-visible /template/ Ellipse#FocusEllipse">
<Setter Property="IsVisible" Value="True" />
</Style>
<!-- Selector Color -->
<Style Selector="^ /template/ Ellipse#FocusEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlLightSelectorBrush}" />
</Style>
<Style Selector="^ /template/ Ellipse#SelectionEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlDarkSelectorBrush}" />
</Style>
<Style Selector="^:light-selector /template/ Ellipse#FocusEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlDarkSelectorBrush}" />
</Style>
<Style Selector="^:light-selector /template/ Ellipse#SelectionEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlLightSelectorBrush}" />
</Style>
<Style Selector="^:pointerover /template/ Ellipse#SelectionEllipse">
<Setter Property="Opacity" Value="0.7" />
</Style>
<Style Selector="^:pointerover:light-selector /template/ Ellipse#SelectionEllipse">
<Setter Property="Opacity" Value="0.8" />
</Style>
<!-- Selector Size -->
<Style Selector="^ /template/ Panel#PART_SelectionEllipsePanel">
<Setter Property="Width" Value="16" />
<Setter Property="Height" Value="16" />
</Style>
<Style Selector="^:large-selector /template/ Panel#PART_SelectionEllipsePanel">
<Setter Property="Width" Value="48" />
<Setter Property="Height" Value="48" />
</Style>
</ControlTheme>
</ResourceDictionary>
1<EFBFBD><ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
xmlns:converters="using:Avalonia.Controls.Converters"
xmlns:primitives="using:Avalonia.Controls.Primitives"
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
xmlns:globalization="using:System.Globalization"
x:ClassModifier="internal">
<pc:ContrastBrushConverter x:Key="ContrastBrushConverter" />
<converters:ColorToDisplayNameConverter x:Key="ColorToDisplayNameConverter" />
<converters:DoNothingForNullConverter x:Key="DoNothingForNullConverter" />
<globalization:NumberFormatInfo x:Key="ColorViewComponentNumberFormat" NumberDecimalDigits="0" />
<x:Double x:Key="ColorViewTabStripHeight">48</x:Double>
<x:Double x:Key="ColorViewComponentLabelWidth">30</x:Double>
<x:Double x:Key="ColorViewComponentTextInputWidth">80</x:Double>
<!-- Fluent UI System Icons : ic_fluent_inking_tool_20_regular.svg -->
<PathGeometry x:Key="ColorViewSpectrumIconGeometry">
M3 2C3.27614 2 3.5 2.22386 3.5 2.5V5.5C3.5 5.77614 3.72386 6 4 6H16C16.2761 6 16.5 5.77614
16.5 5.5V2.5C16.5 2.22386 16.7239 2 17 2C17.2761 2 17.5 2.22386 17.5 2.5V5.5C17.5 6.32843
16.8284 7 16 7H15.809L12.2236 14.1708C12.0615 14.4951 11.7914 14.7431 11.4695
14.8802C11.4905 15.0808 11.5 15.2891 11.5 15.5C11.5 16.0818 11.4278 16.6623 11.2268
17.1165C11.019 17.5862 10.6266 18 10 18C9.37343 18 8.98105 17.5862 8.77323 17.1165C8.57222
16.6623 8.5 16.0818 8.5 15.5C8.5 15.2891 8.50952 15.0808 8.53051 14.8802C8.20863 14.7431
7.93851 14.4951 7.77639 14.1708L4.19098 7H4C3.17157 7 2.5 6.32843 2.5 5.5V2.5C2.5 2.22386
2.72386 2 3 2ZM9.11803 14H10.882C11.0714 14 11.2445 13.893 11.3292 13.7236L14.691
7H5.30902L8.67082 13.7236C8.75552 13.893 8.92865 14 9.11803 14ZM9.52346 15C9.50787 15.1549
9.5 15.3225 9.5 15.5C9.5 16.0228 9.56841 16.4423 9.6877 16.7119C9.8002 16.9661 9.90782 17
10 17C10.0922 17 10.1998 16.9661 10.3123 16.7119C10.4316 16.4423 10.5 16.0228 10.5
15.5C10.5 15.3225 10.4921 15.1549 10.4765 15H9.52346Z
</PathGeometry>
<!-- Fluent UI System Icons : ic_fluent_color_20_regular.svg -->
<PathGeometry x:Key="ColorViewPaletteIconGeometry">
M9.75003 6.5C10.1642 6.5 10.5 6.16421 10.5 5.75C10.5 5.33579 10.1642 5 9.75003 5C9.33582
5 9.00003 5.33579 9.00003 5.75C9.00003 6.16421 9.33582 6.5 9.75003 6.5ZM12.75 7.5C13.1642
7.5 13.5 7.16421 13.5 6.75C13.5 6.33579 13.1642 6 12.75 6C12.3358 6 12 6.33579 12 6.75C12
7.16421 12.3358 7.5 12.75 7.5ZM15.25 9C15.25 9.41421 14.9142 9.75 14.5 9.75C14.0858 9.75
13.75 9.41421 13.75 9C13.75 8.58579 14.0858 8.25 14.5 8.25C14.9142 8.25 15.25 8.58579
15.25 9ZM14.5 12.75C14.9142 12.75 15.25 12.4142 15.25 12C15.25 11.5858 14.9142 11.25 14.5
11.25C14.0858 11.25 13.75 11.5858 13.75 12C13.75 12.4142 14.0858 12.75 14.5 12.75ZM13.25
14C13.25 14.4142 12.9142 14.75 12.5 14.75C12.0858 14.75 11.75 14.4142 11.75 14C11.75
13.5858 12.0858 13.25 12.5 13.25C12.9142 13.25 13.25 13.5858 13.25 14ZM13.6972
2.99169C10.9426 1.57663 8.1432 1.7124 5.77007 3.16636C4.55909 3.9083 3.25331 5.46925
2.51605 7.05899C2.14542 7.85816 1.89915 8.70492 1.90238 9.49318C1.90566 10.2941 2.16983
11.0587 2.84039 11.6053C3.45058 12.1026 3.98165 12.353 4.49574 12.3784C5.01375 12.404
5.41804 12.1942 5.73429 12.0076C5.80382 11.9666 5.86891 11.927 5.93113 11.8892C6.17332
11.7421 6.37205 11.6214 6.62049 11.5426C6.90191 11.4534 7.2582 11.4205 7.77579
11.5787C7.96661 11.637 8.08161 11.7235 8.16212 11.8229C8.24792 11.9289 8.31662 12.0774
8.36788 12.2886C8.41955 12.5016 8.44767 12.7527 8.46868 13.0491C8.47651 13.1594 8.48379
13.2855 8.49142 13.4176C8.50252 13.6098 8.51437 13.8149 8.52974 14.0037C8.58435 14.6744
8.69971 15.4401 9.10362 16.1357C9.51764 16.8488 10.2047 17.439 11.307 17.8158C12.9093
18.3636 14.3731 17.9191 15.5126 17.0169C16.6391 16.125 17.4691 14.7761 17.8842
13.4272C19.1991 9.15377 17.6728 5.03394 13.6972 2.99169ZM6.29249 4.01905C8.35686 2.75426
10.7844 2.61959 13.2403 3.88119C16.7473 5.68275 18.1135 9.28161 16.9284 13.1332C16.5624
14.3227 15.8338 15.4871 14.8919 16.2329C13.963 16.9684 12.8486 17.286 11.6305
16.8696C10.7269 16.5607 10.2467 16.1129 9.96842 15.6336C9.68001 15.1369 9.57799 14.5556
9.52644 13.9225C9.51101 13.733 9.50132 13.5621 9.49147 13.3884C9.48399 13.2564 9.47642
13.1229 9.46618 12.9783C9.44424 12.669 9.41175 12.3499 9.33968 12.0529C9.26719 11.7541
9.14902 11.4527 8.93935 11.1937C8.72439 10.9282 8.43532 10.7346 8.06801 10.6223C7.36648
10.408 6.80266 10.4359 6.31839 10.5893C5.94331 10.7082 5.62016 10.9061 5.37179
11.0582C5.31992 11.0899 5.2713 11.1197 5.22616 11.1463C4.94094 11.3146 4.75357 11.39
4.54514 11.3796C4.33279 11.3691 4.00262 11.2625 3.47218 10.8301C3.0866 10.5158 2.90473
10.0668 2.90237 9.48908C2.89995 8.89865 3.08843 8.20165 3.42324 7.47971C4.09686 6.0272
5.28471 4.63649 6.29249 4.01905Z
</PathGeometry>
<!-- Fluent UI System Icons : ic_fluent_options_20_regular.svg -->
<PathGeometry x:Key="ColorViewComponentsIconGeometry">
M14.95 5C14.7184 3.85888 13.7095 3 12.5 3C11.2905 3 10.2816 3.85888 10.05 5H2.5C2.22386
5 2 5.22386 2 5.5C2 5.77614 2.22386 6 2.5 6H10.05C10.2816 7.14112 11.2905 8 12.5 8C13.7297
8 14.752 7.11217 14.961 5.94254C14.9575 5.96177 14.9539 5.98093 14.95 6H17.5C17.7761 6 18
5.77614 18 5.5C18 5.22386 17.7761 5 17.5 5H14.95ZM12.5 7C11.6716 7 11 6.32843 11 5.5C11
4.67157 11.6716 4 12.5 4C13.3284 4 14 4.67157 14 5.5C14 6.32843 13.3284 7 12.5 7ZM9.94999
14C9.71836 12.8589 8.70948 12 7.5 12C6.29052 12 5.28164 12.8589 5.05001 14H2.5C2.22386
14 2 14.2239 2 14.5C2 14.7761 2.22386 15 2.5 15H5.05001C5.28164 16.1411 6.29052 17 7.5
17C8.70948 17 9.71836 16.1411 9.94999 15H17.5C17.7761 15 18 14.7761 18 14.5C18 14.2239
17.7761 14 17.5 14H9.94999ZM7.5 16C6.67157 16 6 15.3284 6 14.5C6 13.6716 6.67157 13 7.5
13C8.32843 13 9 13.6716 9 14.5C9 15.3284 8.32843 16 7.5 16Z
</PathGeometry>
<!-- This radius should follow ControlCornerRadius -->
<CornerRadius x:Key="ColorViewTabBackgroundCornerRadius">3</CornerRadius>
<ControlTheme x:Key="ColorViewPaletteListBoxTheme"
TargetType="ListBox">
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.IsScrollChainingEnabled" Value="True" />
<Setter Property="Template">
<ControlTemplate>
<Border Name="border"
ClipToBounds="{TemplateBinding ClipToBounds}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}">
<ScrollViewer Name="PART_ScrollViewer"
HorizontalScrollBarVisibility="{TemplateBinding (ScrollViewer.HorizontalScrollBarVisibility)}"
VerticalScrollBarVisibility="{TemplateBinding (ScrollViewer.VerticalScrollBarVisibility)}"
IsScrollChainingEnabled="{TemplateBinding (ScrollViewer.IsScrollChainingEnabled)}"
IsDeferredScrollingEnabled="{TemplateBinding (ScrollViewer.IsDeferredScrollingEnabled)}"
AllowAutoHide="{TemplateBinding (ScrollViewer.AllowAutoHide)}">
<ItemsPresenter Name="PART_ItemsPresenter"
ItemsPanel="{TemplateBinding ItemsPanel}"
Margin="{TemplateBinding Padding}"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter>
</ControlTheme>
<ControlTheme x:Key="ColorViewPaletteListBoxItemTheme"
TargetType="ListBoxItem">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Padding" Value="0" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Grid UseLayoutRounding="False">
<ContentPresenter Name="PART_ContentPresenter"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" />
<Rectangle x:Name="BorderRectangle"
IsHitTestVisible="False"
StrokeThickness="3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</Grid>
</ControlTemplate>
</Setter>
<Style Selector="^ /template/ Rectangle#BorderRectangle">
<Setter Property="Stroke" Value="{DynamicResource SystemControlHighlightListAccentLowBrush}" />
<Setter Property="Opacity" Value="0" />
</Style>
<Style Selector="^:pointerover /template/ Rectangle#BorderRectangle"
x:DataType="Color">
<Setter Property="Stroke" Value="{Binding Converter={StaticResource ContrastBrushConverter}}" />
<Setter Property="Opacity" Value="0.5" />
</Style>
<Style Selector="^:selected /template/ Rectangle#BorderRectangle"
x:DataType="Color">
<!-- The below and above lines really should be:
'Value="{Binding Converter={StaticResource ContrastBrushConverter}, ConverterParameter={DynamicResource TextControlForeground}}"'
However, DynamicResource and Binding is not currently supported in Avalonia for converter parameters.
This means certain colors with transparency less than 50% may have a selection border that is difficult
to see over top of the default control/window background. Since palettes do not usually have transparency
it is considered better to disable this functionality rather than work around it with a multi-value
converter. This should be revisited if Avalonia supports the above code in the future. -->
<Setter Property="Stroke" Value="{Binding Converter={StaticResource ContrastBrushConverter}}" />
<Setter Property="Opacity" Value="1" />
</Style>
</ControlTheme>
<!-- Based on the Fluent ToggleButton ControlTheme -->
<ControlTheme x:Key="ColorViewColorModelRadioButtonTheme"
TargetType="RadioButton">
<Setter Property="Background" Value="{DynamicResource ToggleButtonBackground}" />
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForeground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrush}" />
<Setter Property="BorderThickness" Value="{DynamicResource ToggleButtonBorderThemeThickness}" />
<Setter Property="CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
<Setter Property="Padding" Value="{DynamicResource ButtonPadding}" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontSize" Value="{DynamicResource ControlContentThemeFontSize}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<ControlTemplate>
<ContentPresenter x:Name="PART_ContentPresenter"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Padding="{TemplateBinding Padding}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
</ControlTemplate>
</Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ToggleButtonBackgroundPointerOver}" />
<Setter Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushPointerOver}" />
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundPointerOver}" />
</Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ToggleButtonBackgroundPressed}" />
<Setter Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushPressed}" />
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundPressed}" />
</Style>
<Style Selector="^:checked">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ToggleButtonBackgroundChecked}" />
<Setter Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushChecked}" />
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundChecked}" />
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ToggleButtonBackgroundCheckedPointerOver}" />
<Setter Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushCheckedPointerOver}" />
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedPointerOver}" />
</Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ToggleButtonBackgroundCheckedPressed}" />
<Setter Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushCheckedPressed}" />
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedPressed}" />
</Style>
</Style>
</ControlTheme>
<!-- Based on the Fluent TabItem ControlTheme -->
<ControlTheme x:Key="ColorViewTabItemTheme"
TargetType="TabItem">
<Setter Property="FontSize" Value="{DynamicResource TabItemHeaderFontSize}" />
<Setter Property="FontWeight" Value="{DynamicResource TabItemHeaderThemeFontWeight}" />
<Setter Property="Background" Value="{DynamicResource TabItemHeaderBackgroundUnselected}" />
<Setter Property="Foreground" Value="{DynamicResource TabItemHeaderForegroundUnselected}" />
<Setter Property="Padding" Value="6,0,6,0" />
<Setter Property="Margin" Value="0" />
<Setter Property="MinHeight" Value="{DynamicResource ColorViewTabStripHeight}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<ControlTemplate>
<Border Name="PART_LayoutRoot"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
Padding="{TemplateBinding Padding}">
<Panel>
<ContentPresenter Name="PART_ContentPresenter"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
FontFamily="{TemplateBinding FontFamily}"
FontSize="{TemplateBinding FontSize}"
FontWeight="{TemplateBinding FontWeight}" />
<Border Name="PART_SelectedPipe"
Height="{DynamicResource TabItemPipeThickness}"
Margin="0,0,0,2"
HorizontalAlignment="Stretch"
VerticalAlignment="Bottom"
Background="{DynamicResource TabItemHeaderSelectedPipeFill}"
CornerRadius="{DynamicResource ControlCornerRadius}"
IsVisible="False"/>
</Panel>
</Border>
</ControlTemplate>
</Setter>
<Style Selector="^:selected">
<Setter Property="Background" Value="{DynamicResource TabItemHeaderBackgroundSelected}" />
<Setter Property="Foreground" Value="{DynamicResource TabItemHeaderForegroundSelected}" />
</Style>
<Style Selector="^:selected /template/ Border#PART_SelectedPipe">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="^:pointerover /template/ Border#PART_LayoutRoot">
<Setter Property="Background" Value="{DynamicResource TabItemHeaderBackgroundUnselectedPointerOver}" />
<Setter Property="TextElement.Foreground" Value="{DynamicResource TabItemHeaderForegroundUnselectedPointerOver}" />
</Style>
<Style Selector="^:selected:pointerover /template/ Border#PART_LayoutRoot">
<Setter Property="Background" Value="{DynamicResource TabItemHeaderBackgroundSelectedPointerOver}" />
<Setter Property="TextElement.Foreground" Value="{DynamicResource TabItemHeaderForegroundSelectedPointerOver}" />
</Style>
<Style Selector="^:pressed /template/ Border#PART_LayoutRoot">
<Setter Property="Background" Value="{DynamicResource TabItemHeaderBackgroundUnselectedPressed}" />
<Setter Property="TextElement.Foreground" Value="{DynamicResource TabItemHeaderForegroundUnselectedPressed}" />
</Style>
<Style Selector="^:selected:pressed /template/ Border#PART_LayoutRoot">
<Setter Property="Background" Value="{DynamicResource TabItemHeaderBackgroundSelectedPressed}" />
<Setter Property="TextElement.Foreground" Value="{DynamicResource TabItemHeaderForegroundSelectedPressed}" />
</Style>
</ControlTheme>
<ControlTheme x:Key="{x:Type ColorView}"
TargetType="ColorView">
<Setter Property="CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
<!-- Alpha position should match CSS (and default slider order) instead of XAML/WinUI -->
<Setter Property="HexInputAlphaPosition" Value="Trailing" />
<Setter Property="Palette">
<controls:FluentColorPalette />
</Setter>
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorView}">
<Grid RowDefinitions="Auto,Auto">
<!-- Backgrounds -->
<!-- TODO: Background="{DynamicResource ColorViewTabBackgroundBrush}" -->
<Border x:Name="TabBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Height="48"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Background="{DynamicResource SystemControlBackgroundBaseLowBrush}"
BorderBrush="{DynamicResource ColorViewTabBorderBrush}"
CornerRadius="{DynamicResource ColorViewTabBackgroundCornerRadius}" />
<Border x:Name="ContentBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Margin="0,48,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource BottomCornerRadiusFilterConverter}}"
Background="{DynamicResource ColorViewContentBackgroundBrush}"
BorderBrush="{DynamicResource ColorViewContentBorderBrush}"
BorderThickness="0,1,0,0" />
<TabControl x:Name="PART_TabControl"
Grid.Row="0"
Height="338"
Width="350"
Padding="0"
SelectedIndex="{Binding SelectedIndex, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}">
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="0"
Rows="1" />
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
<!-- Spectrum Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorSpectrumVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewSpectrumIconGeometry}" />
</Border>
</TabItem.Header>
<Grid RowDefinitions="*"
Margin="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
MinWidth="32" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"
MinWidth="32" />
</Grid.ColumnDefinitions>
<primitives:ColorSlider x:Name="ColorSpectrumThirdComponentSlider"
AutomationProperties.Name="Third Component"
Grid.Column="0"
IsAlphaVisible="False"
IsPerceptive="True"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="{Binding ThirdComponent, ElementName=ColorSpectrum}"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="0,0,12,0"
IsVisible="{TemplateBinding IsColorSpectrumSliderVisible}"/>
<primitives:ColorSpectrum x:Name="ColorSpectrum"
Grid.Column="1"
Components="{TemplateBinding ColorSpectrumComponents}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
MinHue="{TemplateBinding MinHue}"
MaxHue="{TemplateBinding MaxHue}"
MinSaturation="{TemplateBinding MinSaturation}"
MaxSaturation="{TemplateBinding MaxSaturation}"
MinValue="{TemplateBinding MinValue}"
MaxValue="{TemplateBinding MaxValue}"
Shape="{TemplateBinding ColorSpectrumShape}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<primitives:ColorSlider x:Name="ColorSpectrumAlphaSlider"
AutomationProperties.Name="Alpha Component"
Grid.Column="2"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="Alpha"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="12,0,0,0"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
<!-- Palette Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorPaletteVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewPaletteIconGeometry}" />
</Border>
</TabItem.Header>
<ListBox Theme="{StaticResource ColorViewPaletteListBoxTheme}"
ItemContainerTheme="{StaticResource ColorViewPaletteListBoxItemTheme}"
ItemsSource="{TemplateBinding PaletteColors}"
SelectedItem="{Binding Color, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource DoNothingForNullConverter}, Mode=TwoWay}"
UseLayoutRounding="False"
Margin="12">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type Color}">
<Border AutomationProperties.Name="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
ToolTip.Tip="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Border.Background>
<SolidColorBrush Color="{Binding}" />
</Border.Background>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding $parent[ColorView].PaletteColumnCount}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</TabItem>
<!-- Components Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorComponentsVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewComponentsIconGeometry}" />
</Border>
</TabItem.Header>
<Grid ColumnDefinitions="Auto,Auto,*"
RowDefinitions="Auto,24,1*,1*,1*,1*,12"
Margin="12">
<!-- Top color model & Hex input -->
<Grid Grid.Column="0"
Grid.ColumnSpan="3"
Grid.Row="0"
ColumnDefinitions="1*,12,1*">
<!-- Content RGB/HSV names are hard-coded and considered universal -->
<!-- RadioButtons are styled to look like a 'SegmentedControl' or 'ButtonGroup' -->
<Grid ColumnDefinitions="1*,1*"
IsVisible="{TemplateBinding IsColorModelVisible}">
<RadioButton x:Name="RgbRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="0"
Content="RGB"
CornerRadius="4,0,0,4"
BorderThickness="1,1,0,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=TwoWay}" />
<RadioButton x:Name="HsvRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="1"
Content="HSV"
CornerRadius="0,4,4,0"
BorderThickness="0,1,1,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=TwoWay}" />
</Grid>
<Grid x:Name="HexInputGrid"
Grid.Column="2"
IsVisible="{TemplateBinding IsHexInputVisible}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
Height="32"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="#"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
<!-- Color updated in code-behind -->
<!-- Max length must include an optional '#' prefix (#FFFFFFFF) -->
<TextBox x:Name="PART_HexTextBox"
Grid.Column="1"
AutomationProperties.Name="Hexadecimal Color"
Height="32"
MaxLength="9"
HorizontalAlignment="Stretch"
CornerRadius="0,4,4,0" />
</Grid>
</Grid>
<!-- Color component editing controls -->
<!-- Component 1 RGB:Red HSV:Hue -->
<Border Grid.Column="0"
Grid.Row="2"
Height="{Binding ElementName=Component1NumericUpDown, Path=Bounds.Height}"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="R"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}"/>
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="H"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component1NumericUpDown"
Grid.Column="1"
Grid.Row="2"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component1Slider}"
Maximum="{Binding Maximum, ElementName=Component1Slider}"
Value="{Binding Value, ElementName=Component1Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component1Slider"
Grid.Column="2"
Grid.Row="2"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component1"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 2 RGB:Green HSV:Saturation -->
<Border Grid.Column="0"
Grid.Row="3"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component2NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="G"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="S"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component2NumericUpDown"
Grid.Column="1"
Grid.Row="3"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component2Slider}"
Maximum="{Binding Maximum, ElementName=Component2Slider}"
Value="{Binding Value, ElementName=Component2Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component2Slider"
Grid.Column="2"
Grid.Row="3"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component2"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 3 RGB:Blue HSV:Value -->
<Border Grid.Column="0"
Grid.Row="4"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component3NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="B"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="V"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component3NumericUpDown"
Grid.Column="1"
Grid.Row="4"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component3Slider}"
Maximum="{Binding Maximum, ElementName=Component3Slider}"
Value="{Binding Value, ElementName=Component3Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component3Slider"
Grid.Column="2"
Grid.Row="4"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component3"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Alpha Component -->
<Border Grid.Column="0"
Grid.Row="5"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=AlphaComponentNumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource TextControlBackgroundDisabled}"
BorderBrush="{DynamicResource TextControlBorderBrush}"
BorderThickness="1,1,0,1"
CornerRadius="4,0,0,4"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<TextBlock x:Name="AlphaComponentTextBlock"
Foreground="{DynamicResource TextControlForegroundDisabled}"
FontWeight="SemiBold"
Text="A"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Border.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</Border.IsVisible>
</Border>
<NumericUpDown x:Name="AlphaComponentNumericUpDown"
Grid.Column="1"
Grid.Row="5"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,4,4,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=AlphaComponentSlider}"
Maximum="{Binding Maximum, ElementName=AlphaComponentSlider}"
Value="{Binding Value, ElementName=AlphaComponentSlider}"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<NumericUpDown.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</NumericUpDown.IsVisible>
</NumericUpDown>
<primitives:ColorSlider x:Name="AlphaComponentSlider"
Grid.Column="2"
Grid.Row="5"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Alpha"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentSliderVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
</TabControl>
<!-- Previewer -->
<!-- Note that the drop shadow is allowed to extend past the control bounds -->
<primitives:ColorPreviewer Grid.Row="1"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
IsAccentColorsVisible="{TemplateBinding IsAccentColorsVisible}"
Margin="12,0,12,12"
IsVisible="{TemplateBinding IsColorPreviewVisible}" />
</Grid>
</ControlTemplate>
</Setter>
<!--
<Style Selector="^ /template/ primitives|ColorSlider#ColorSpectrumThirdComponentSlider[ColorComponent=Component1]">
<Setter Property="IsPerceptive" Value="True" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component1Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component2Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component3Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
-->
</ControlTheme>
</ResourceDictionary>
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="using:Avalonia.Controls.Converters">
<Styles.Resources>
<ResourceDictionary>
<!-- Shared Resources -->
<VisualBrush x:Key="ColorControlCheckeredBackgroundBrush"
TileMode="Tile"
Stretch="Uniform"
DestinationRect="0,0,8,8">
<VisualBrush.Visual>
<Image Width="8" Height="8">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup>
<GeometryDrawing Geometry="M0,0 L2,0 2,2, 0,2Z"
Brush="Transparent" />
<GeometryDrawing Geometry="M0,1 L2,1 2,2, 1,2 1,0 0,0Z"
Brush="#19808080" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</VisualBrush.Visual>
</VisualBrush>
<!-- TODO: Enable the commented-out resources below once Avalonia supports extending light/dark resource dictionaries -->
<SolidColorBrush x:Key="ColorControlLightSelectorBrush" Color="#FFFFFFFF" />
<SolidColorBrush x:Key="ColorControlDarkSelectorBrush" Color="#E4000000" />
<!--<DynamicResource x:Key="ColorControlDefaultSelectorBrush" ResourceKey="SystemControlForegroundBaseHighBrush" />-->
<SolidColorBrush x:Key="ColorViewContentBackgroundBrush" Color="Transparent" />
<SolidColorBrush x:Key="ColorViewContentBorderBrush" Color="Transparent" />
<!--<DynamicResource x:Key="ColorViewTabBackgroundBrush" ResourceKey="SystemControlBackgroundBaseLowBrush" />-->
<SolidColorBrush x:Key="ColorViewTabBorderBrush" Color="Transparent" />
<!-- Shared Converters -->
<converters:EnumToBoolConverter x:Key="EnumToBoolConverter" />
<converters:ToBrushConverter x:Key="ToBrushConverter" />
<converters:CornerRadiusFilterConverter x:Key="LeftCornerRadiusFilterConverter" Filter="TopLeft, BottomLeft"/>
<converters:CornerRadiusFilterConverter x:Key="RightCornerRadiusFilterConverter" Filter="TopRight, BottomRight"/>
<converters:CornerRadiusFilterConverter x:Key="TopCornerRadiusFilterConverter" Filter="TopLeft, TopRight"/>
<converters:CornerRadiusFilterConverter x:Key="BottomCornerRadiusFilterConverter" Filter="BottomLeft, BottomRight"/>
<converters:CornerRadiusToDoubleConverter x:Key="TopLeftCornerRadiusConverter" Corner="TopLeft" />
<converters:CornerRadiusToDoubleConverter x:Key="BottomRightCornerRadiusConverter" Corner="BottomRight" />
<ResourceDictionary.MergedDictionaries>
<!-- Primitives -->
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Fluent/ColorPreviewer.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Fluent/ColorSlider.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Fluent/ColorSpectrum.xaml" />
<!-- Controls -->
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Fluent/ColorPicker.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Fluent/ColorView.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Styles.Resources>
</Styles>
o<EFBFBD><ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
xmlns:primitives="using:Avalonia.Controls.Primitives"
x:ClassModifier="internal">
<PlacementMode x:Key="ColorPickerFlyoutPlacement">Top</PlacementMode>
<ControlTheme x:Key="{x:Type ColorPicker}"
TargetType="ColorPicker">
<Setter Property="CornerRadius" Value="0" />
<!-- Alpha position should match CSS (and default slider order) instead of XAML/WinUI -->
<Setter Property="HexInputAlphaPosition" Value="Trailing" />
<Setter Property="Height" Value="32" />
<Setter Property="Width" Value="64" />
<Setter Property="MinWidth" Value="64" />
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Content">
<Template>
<Panel>
<Border Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="1,1,0,1" />
<Border Background="{TemplateBinding HsvColor, Converter={StaticResource ToBrushConverter}}"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="1,1,0,1" />
</Panel>
</Template>
</Setter>
<Setter Property="Palette">
<controls:FluentColorPalette />
</Setter>
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorPicker}">
<DropDownButton CornerRadius="{TemplateBinding CornerRadius}"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Width}"
Content="{TemplateBinding Content}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Padding="0,0,10,0"
UseLayoutRounding="False">
<DropDownButton.Styles>
<Style Selector="FlyoutPresenter.nopadding">
<Setter Property="Padding" Value="0" />
</Style>
</DropDownButton.Styles>
<DropDownButton.Flyout>
<Flyout FlyoutPresenterClasses="nopadding"
Placement="{DynamicResource ColorPickerFlyoutPlacement}">
<!-- The following is copy-pasted from the ColorView's control template.
It MUST always be kept in sync with the ColorView (which is master).
Note the only changes are resources specific to the ColorPicker. -->
<Grid RowDefinitions="Auto,Auto">
<Grid.Resources>
<!-- This radius must follow OverlayCornerRadius -->
<CornerRadius x:Key="ColorViewTabBackgroundCornerRadius">0,0,0,0</CornerRadius>
</Grid.Resources>
<!-- Backgrounds -->
<!-- TODO: Background="{DynamicResource ColorViewTabBackgroundBrush}" -->
<Border x:Name="TabBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Height="48"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Background="{DynamicResource SystemControlBackgroundBaseLowBrush}"
BorderBrush="{DynamicResource ColorViewTabBorderBrush}"
CornerRadius="{DynamicResource ColorViewTabBackgroundCornerRadius}" />
<Border x:Name="ContentBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Margin="0,48,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource BottomCornerRadiusFilterConverter}}"
Background="{DynamicResource ColorViewContentBackgroundBrush}"
BorderBrush="{DynamicResource ColorViewContentBorderBrush}"
BorderThickness="0,1,0,0" />
<TabControl x:Name="PART_TabControl"
Grid.Row="0"
Height="338"
Width="350"
Padding="0"
SelectedIndex="{Binding SelectedIndex, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}">
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="0"
Rows="1" />
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
<!-- Spectrum Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorSpectrumVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}"
Background="Transparent">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewSpectrumIconGeometry}" />
</Border>
</TabItem.Header>
<Grid RowDefinitions="*"
Margin="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
MinWidth="32" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"
MinWidth="32" />
</Grid.ColumnDefinitions>
<primitives:ColorSlider x:Name="ColorSpectrumThirdComponentSlider"
AutomationProperties.Name="Third Component"
Grid.Column="0"
IsAlphaVisible="False"
IsPerceptive="True"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="{Binding ThirdComponent, ElementName=ColorSpectrum}"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="0,0,12,0"
IsVisible="{TemplateBinding IsColorSpectrumSliderVisible}" />
<primitives:ColorSpectrum x:Name="ColorSpectrum"
Grid.Column="1"
Components="{TemplateBinding ColorSpectrumComponents}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
MinHue="{TemplateBinding MinHue}"
MaxHue="{TemplateBinding MaxHue}"
MinSaturation="{TemplateBinding MinSaturation}"
MaxSaturation="{TemplateBinding MaxSaturation}"
MinValue="{TemplateBinding MinValue}"
MaxValue="{TemplateBinding MaxValue}"
Shape="{TemplateBinding ColorSpectrumShape}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<primitives:ColorSlider x:Name="ColorSpectrumAlphaSlider"
AutomationProperties.Name="Alpha Component"
Grid.Column="2"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="Alpha"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="12,0,0,0"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
<!-- Palette Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorPaletteVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}"
Background="Transparent">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewPaletteIconGeometry}" />
</Border>
</TabItem.Header>
<ListBox Theme="{StaticResource ColorViewPaletteListBoxTheme}"
ItemContainerTheme="{StaticResource ColorViewPaletteListBoxItemTheme}"
ItemsSource="{TemplateBinding PaletteColors}"
SelectedItem="{Binding Color, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource DoNothingForNullConverter}, Mode=TwoWay}"
UseLayoutRounding="False"
Margin="12">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type Color}">
<Border AutomationProperties.Name="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
ToolTip.Tip="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Border.Background>
<SolidColorBrush Color="{Binding}" />
</Border.Background>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding $parent[ColorView].PaletteColumnCount}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</TabItem>
<!-- Components Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorComponentsVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}"
Background="Transparent">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewComponentsIconGeometry}" />
</Border>
</TabItem.Header>
<Grid ColumnDefinitions="Auto,Auto,*"
RowDefinitions="Auto,24,1*,1*,1*,1*,12"
Margin="12">
<!-- Top color model & Hex input -->
<Grid Grid.Column="0"
Grid.ColumnSpan="3"
Grid.Row="0"
ColumnDefinitions="1*,12,1*">
<!-- Content RGB/HSV names are hard-coded and considered universal -->
<!-- RadioButtons are styled to look like a 'SegmentedControl' or 'ButtonGroup' -->
<Grid ColumnDefinitions="1*,1*"
IsVisible="{TemplateBinding IsColorModelVisible}">
<RadioButton x:Name="RgbRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="0"
Content="RGB"
CornerRadius="0,0,0,0"
BorderThickness="1,1,0,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=TwoWay}" />
<RadioButton x:Name="HsvRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="1"
Content="HSV"
CornerRadius="0,0,0,0"
BorderThickness="0,1,1,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=TwoWay}" />
</Grid>
<Grid x:Name="HexInputGrid"
Grid.Column="2"
IsVisible="{TemplateBinding IsHexInputVisible}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
Height="32"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="#"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
<!-- Color updated in code-behind -->
<!-- Max length must include an optional '#' prefix (#FFFFFFFF) -->
<TextBox x:Name="PART_HexTextBox"
Grid.Column="1"
AutomationProperties.Name="Hexadecimal Color"
Height="32"
MaxLength="9"
Padding="10,6,6,5"
VerticalContentAlignment="Center"
HorizontalAlignment="Stretch"
CornerRadius="0,0,0,0" />
</Grid>
</Grid>
<!-- Color component editing controls -->
<!-- Component 1 RGB:Red HSV:Hue -->
<Border Grid.Column="0"
Grid.Row="2"
Height="{Binding ElementName=Component1NumericUpDown, Path=Bounds.Height}"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="R"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="H"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component1NumericUpDown"
Grid.Column="1"
Grid.Row="2"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component1Slider}"
Maximum="{Binding Maximum, ElementName=Component1Slider}"
Value="{Binding Value, ElementName=Component1Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component1Slider"
Grid.Column="2"
Grid.Row="2"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component1"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 2 RGB:Green HSV:Saturation -->
<Border Grid.Column="0"
Grid.Row="3"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component2NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="G"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="S"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component2NumericUpDown"
Grid.Column="1"
Grid.Row="3"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component2Slider}"
Maximum="{Binding Maximum, ElementName=Component2Slider}"
Value="{Binding Value, ElementName=Component2Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component2Slider"
Grid.Column="2"
Grid.Row="3"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component2"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 3 RGB:Blue HSV:Value -->
<Border Grid.Column="0"
Grid.Row="4"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component3NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="B"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="V"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component3NumericUpDown"
Grid.Column="1"
Grid.Row="4"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component3Slider}"
Maximum="{Binding Maximum, ElementName=Component3Slider}"
Value="{Binding Value, ElementName=Component3Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component3Slider"
Grid.Column="2"
Grid.Row="4"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component3"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Alpha Component -->
<Border Grid.Column="0"
Grid.Row="5"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=AlphaComponentNumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<TextBlock x:Name="AlphaComponentTextBlock"
Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="A"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Border.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</Border.IsVisible>
</Border>
<NumericUpDown x:Name="AlphaComponentNumericUpDown"
Grid.Column="1"
Grid.Row="5"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=AlphaComponentSlider}"
Maximum="{Binding Maximum, ElementName=AlphaComponentSlider}"
Value="{Binding Value, ElementName=AlphaComponentSlider}"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<NumericUpDown.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</NumericUpDown.IsVisible>
</NumericUpDown>
<primitives:ColorSlider x:Name="AlphaComponentSlider"
Grid.Column="2"
Grid.Row="5"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Alpha"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentSliderVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
</TabControl>
<!-- Previewer -->
<!-- Note that the drop shadow is allowed to extend past the control bounds -->
<primitives:ColorPreviewer Grid.Row="1"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
IsAccentColorsVisible="{TemplateBinding IsAccentColorsVisible}"
Margin="12,0,12,12"
IsVisible="{TemplateBinding IsColorPreviewVisible}" />
</Grid>
</Flyout>
</DropDownButton.Flyout>
</DropDownButton>
</ControlTemplate>
</Setter>
<!--
<Style Selector="^ /template/ primitives|ColorSlider#ColorSpectrumThirdComponentSlider[ColorComponent=Component1]">
<Setter Property="IsPerceptive" Value="True" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component1Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component2Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component3Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
-->
</ControlTheme>
</ResourceDictionary>
s<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
x:ClassModifier="internal">
<pc:AccentColorConverter x:Key="AccentColorConverter" />
<x:Double x:Key="ColorPreviewerAccentSectionWidth">80</x:Double>
<x:Double x:Key="ColorPreviewerAccentSectionHeight">40</x:Double>
<ControlTheme x:Key="{x:Type ColorPreviewer}"
TargetType="ColorPreviewer">
<Setter Property="Height" Value="50" />
<!-- The preview color drop shadow is allowed to extend outside the control bounds -->
<Setter Property="ClipToBounds" Value="False" />
<Setter Property="CornerRadius" Value="0" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorPreviewer}">
<Panel>
<!-- Preview color with accents to the left and right -->
<Grid ColumnDefinitions="Auto,*,Auto"
IsVisible="{TemplateBinding IsAccentColorsVisible}">
<!-- Left accent colors -->
<Grid Grid.Column="0"
Height="{StaticResource ColorPreviewerAccentSectionHeight}"
Width="{StaticResource ColorPreviewerAccentSectionWidth}"
ColumnDefinitions="*,*"
VerticalAlignment="Center">
<Border Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}" />
<Border x:Name="PART_AccentDecrement2Border"
Grid.Column="0"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}"
Tag="-2"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='-2'}" />
<Border x:Name="PART_AccentDecrement1Border"
Grid.Column="1"
Tag="-1"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='-1'}" />
</Grid>
<!-- Right accent colors -->
<Grid Grid.Column="2"
Height="{StaticResource ColorPreviewerAccentSectionHeight}"
Width="{StaticResource ColorPreviewerAccentSectionWidth}"
ColumnDefinitions="*,*"
VerticalAlignment="Center">
<Border Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}" />
<Border x:Name="PART_AccentIncrement1Border"
Grid.Column="0"
Tag="1"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='1'}" />
<Border x:Name="PART_AccentIncrement2Border"
Grid.Column="1"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource RightCornerRadiusFilterConverter}}"
Tag="2"
Background="{TemplateBinding HsvColor, Converter={StaticResource AccentColorConverter}, ConverterParameter='2'}" />
</Grid>
<!-- Preview color: Must be last for drop shadow Z-index -->
<Border Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
BoxShadow="0 0 10 2 #BF000000"
CornerRadius="{TemplateBinding CornerRadius}">
<Panel>
<Border Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{TemplateBinding CornerRadius}" />
<Border CornerRadius="{TemplateBinding CornerRadius}"
Background="{TemplateBinding HsvColor, Converter={StaticResource ToBrushConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</Panel>
</Border>
</Grid>
<!-- Only preview color -->
<Border CornerRadius="{TemplateBinding CornerRadius}"
IsVisible="{TemplateBinding IsAccentColorsVisible, Converter={x:Static BoolConverters.Not}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Panel>
<Border Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{TemplateBinding CornerRadius}" />
<Border CornerRadius="{TemplateBinding CornerRadius}"
Background="{TemplateBinding HsvColor, Converter={StaticResource ToBrushConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</Panel>
</Border>
</Panel>
</ControlTemplate>
</Setter>
</ControlTheme>
</ResourceDictionary>
<EFBFBD>'<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:ClassModifier="internal">
<!-- Note that the Slider thumb should generally follow the overall Slider dimensions.
Therefore, there are not currently separate resources to control it. -->
<x:Double x:Key="ColorSliderSize">20</x:Double>
<x:Double x:Key="ColorSliderTrackSize">20</x:Double>
<CornerRadius x:Key="ColorSliderCornerRadius">10</CornerRadius>
<CornerRadius x:Key="ColorSliderTrackCornerRadius">10</CornerRadius>
<ControlTheme x:Key="ColorSliderThumbTheme"
TargetType="Thumb">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{DynamicResource ThemeForegroundBrush}" />
<!--TODO: <Setter Property="BorderBrush" Value="{DynamicResource ColorControlDefaultSelectorBrush}" />-->
<Setter Property="BorderThickness" Value="3" />
<Setter Property="CornerRadius" Value="{DynamicResource ColorSliderCornerRadius}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</ControlTheme>
<ControlTheme x:Key="{x:Type ColorSlider}"
TargetType="ColorSlider">
<Style Selector="^:horizontal">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="{DynamicResource ColorSliderCornerRadius}" />
<Setter Property="Height" Value="{DynamicResource ColorSliderSize}" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorSlider}">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="{TemplateBinding CornerRadius}">
<Grid Margin="{TemplateBinding Padding}">
<Border HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Height="{Binding ElementName=PART_Track, Path=Bounds.Height}"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Border HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Height="{Binding ElementName=PART_Track, Path=Bounds.Height}"
Background="{TemplateBinding Background}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Track Name="PART_Track"
Height="{DynamicResource ColorSliderTrackSize}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Minimum="{TemplateBinding Minimum}"
Maximum="{TemplateBinding Maximum}"
Value="{TemplateBinding Value, Mode=TwoWay}"
IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
Orientation="Horizontal">
<Track.DecreaseButton>
<RepeatButton Name="PART_DecreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.DecreaseButton>
<Track.IncreaseButton>
<RepeatButton Name="PART_IncreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.IncreaseButton>
<Thumb Name="ColorSliderThumb"
Theme="{DynamicResource ColorSliderThumbTheme}"
Margin="0"
Padding="0"
DataContext="{TemplateBinding Value}"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Height}" />
</Track>
</Grid>
</Border>
</ControlTemplate>
</Setter>
</Style>
<Style Selector="^:vertical">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="{DynamicResource ColorSliderCornerRadius}" />
<Setter Property="Width" Value="{DynamicResource ColorSliderSize}" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorSlider}">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="{TemplateBinding CornerRadius}">
<Grid Margin="{TemplateBinding Padding}">
<Border HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Width="{Binding ElementName=PART_Track, Path=Bounds.Width}"
Background="{StaticResource ColorControlCheckeredBackgroundBrush}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Border HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Width="{Binding ElementName=PART_Track, Path=Bounds.Width}"
Background="{TemplateBinding Background}"
CornerRadius="{DynamicResource ColorSliderTrackCornerRadius}" />
<Track Name="PART_Track"
Width="{DynamicResource ColorSliderTrackSize}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Minimum="{TemplateBinding Minimum}"
Maximum="{TemplateBinding Maximum}"
Value="{TemplateBinding Value, Mode=TwoWay}"
IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
Orientation="Vertical">
<Track.DecreaseButton>
<RepeatButton Name="PART_DecreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.DecreaseButton>
<Track.IncreaseButton>
<RepeatButton Name="PART_IncreaseButton"
Background="Transparent"
Focusable="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<RepeatButton.Template>
<ControlTemplate>
<Border Name="FocusTarget"
Background="Transparent"
Margin="0,-10" />
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
</Track.IncreaseButton>
<Thumb Name="ColorSliderThumb"
Theme="{DynamicResource ColorSliderThumbTheme}"
Margin="0"
Padding="0"
DataContext="{TemplateBinding Value}"
Height="{TemplateBinding Width}"
Width="{TemplateBinding Width}" />
</Track>
</Grid>
</Border>
</ControlTemplate>
</Setter>
</Style>
<!-- Selector/Thumb Color -->
<Style Selector="^:pointerover /template/ Thumb#ColorSliderThumb">
<Setter Property="Opacity" Value="0.75" />
</Style>
<Style Selector="^:pointerover:dark-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="Opacity" Value="0.7" />
</Style>
<Style Selector="^:pointerover:light-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="Opacity" Value="0.8" />
</Style>
<Style Selector="^:dark-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="BorderBrush" Value="{DynamicResource ColorControlDarkSelectorBrush}" />
</Style>
<Style Selector="^:light-selector /template/ Thumb#ColorSliderThumb">
<Setter Property="BorderBrush" Value="{DynamicResource ColorControlLightSelectorBrush}" />
</Style>
</ControlTheme>
</ResourceDictionary>
<EFBFBD><ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
x:ClassModifier="internal">
<ControlTheme x:Key="{x:Type ColorSpectrum}"
TargetType="ColorSpectrum">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ColorSpectrum}">
<Panel x:Name="PART_LayoutRoot"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Panel x:Name="PART_SizingPanel"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ClipToBounds="True">
<Rectangle x:Name="PART_SpectrumRectangle"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Box}}"
RadiusX="{TemplateBinding CornerRadius, Converter={StaticResource TopLeftCornerRadiusConverter}}"
RadiusY="{TemplateBinding CornerRadius, Converter={StaticResource BottomRightCornerRadiusConverter}}" />
<Rectangle x:Name="PART_SpectrumOverlayRectangle"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Box}}"
RadiusX="{TemplateBinding CornerRadius, Converter={StaticResource TopLeftCornerRadiusConverter}}"
RadiusY="{TemplateBinding CornerRadius, Converter={StaticResource BottomRightCornerRadiusConverter}}" />
<Ellipse x:Name="PART_SpectrumEllipse"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Ring}}" />
<Ellipse x:Name="PART_SpectrumOverlayEllipse"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Ring}}" />
<Canvas x:Name="PART_InputTarget"
Background="Transparent"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<!-- Note: ToolTip.VerticalOffset is for touch devices to keep the tip above fingers -->
<Panel x:Name="PART_SelectionEllipsePanel"
ToolTip.VerticalOffset="-10"
ToolTip.Placement="Top">
<Ellipse x:Name="FocusEllipse"
Margin="-2"
StrokeThickness="2"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<Ellipse x:Name="SelectionEllipse"
StrokeThickness="2"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<ToolTip.Tip>
<!-- Set in code-behind -->
</ToolTip.Tip>
</Panel>
</Canvas>
<Rectangle x:Name="BorderRectangle"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Box}}"
RadiusX="{TemplateBinding CornerRadius, Converter={StaticResource TopLeftCornerRadiusConverter}}"
RadiusY="{TemplateBinding CornerRadius, Converter={StaticResource BottomRightCornerRadiusConverter}}" />
<Ellipse x:Name="BorderEllipse"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsVisible="{TemplateBinding Shape, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorSpectrumShape.Ring}}" />
</Panel>
</Panel>
</ControlTemplate>
</Setter.Value>
</Setter>
<!-- Normal -->
<!-- Separating this allows easier customization in applications -->
<Style Selector="^ /template/ Ellipse#BorderEllipse,
^ /template/ Rectangle#BorderRectangle">
<Setter Property="Stroke" Value="{DynamicResource ThemeBorderLowBrush}" />
<Setter Property="StrokeThickness" Value="1" />
</Style>
<!-- Focus -->
<Style Selector="^ /template/ Ellipse#FocusEllipse">
<Setter Property="IsVisible" Value="False" />
</Style>
<Style Selector="^:focus-visible /template/ Ellipse#FocusEllipse">
<Setter Property="IsVisible" Value="True" />
</Style>
<!-- Selector Color -->
<Style Selector="^ /template/ Ellipse#FocusEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlLightSelectorBrush}" />
</Style>
<Style Selector="^ /template/ Ellipse#SelectionEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlDarkSelectorBrush}" />
</Style>
<Style Selector="^:light-selector /template/ Ellipse#FocusEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlDarkSelectorBrush}" />
</Style>
<Style Selector="^:light-selector /template/ Ellipse#SelectionEllipse">
<Setter Property="Stroke" Value="{DynamicResource ColorControlLightSelectorBrush}" />
</Style>
<Style Selector="^:pointerover /template/ Ellipse#SelectionEllipse">
<Setter Property="Opacity" Value="0.7" />
</Style>
<Style Selector="^:pointerover:light-selector /template/ Ellipse#SelectionEllipse">
<Setter Property="Opacity" Value="0.8" />
</Style>
<!-- Selector Size -->
<Style Selector="^ /template/ Panel#PART_SelectionEllipsePanel">
<Setter Property="Width" Value="16" />
<Setter Property="Height" Value="16" />
</Style>
<Style Selector="^:large-selector /template/ Panel#PART_SelectionEllipsePanel">
<Setter Property="Width" Value="48" />
<Setter Property="Height" Value="48" />
</Style>
</ControlTheme>
</ResourceDictionary>
<EFBFBD><EFBFBD><ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
xmlns:converters="using:Avalonia.Controls.Converters"
xmlns:primitives="using:Avalonia.Controls.Primitives"
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
xmlns:globalization="using:System.Globalization"
x:ClassModifier="internal">
<pc:ContrastBrushConverter x:Key="ContrastBrushConverter" />
<converters:ColorToDisplayNameConverter x:Key="ColorToDisplayNameConverter" />
<converters:DoNothingForNullConverter x:Key="DoNothingForNullConverter" />
<globalization:NumberFormatInfo x:Key="ColorViewComponentNumberFormat" NumberDecimalDigits="0" />
<x:Double x:Key="ColorViewTabStripHeight">48</x:Double>
<x:Double x:Key="ColorViewComponentLabelWidth">30</x:Double>
<x:Double x:Key="ColorViewComponentTextInputWidth">80</x:Double>
<!-- Fluent UI System Icons : ic_fluent_inking_tool_20_regular.svg -->
<PathGeometry x:Key="ColorViewSpectrumIconGeometry">
M3 2C3.27614 2 3.5 2.22386 3.5 2.5V5.5C3.5 5.77614 3.72386 6 4 6H16C16.2761 6 16.5 5.77614
16.5 5.5V2.5C16.5 2.22386 16.7239 2 17 2C17.2761 2 17.5 2.22386 17.5 2.5V5.5C17.5 6.32843
16.8284 7 16 7H15.809L12.2236 14.1708C12.0615 14.4951 11.7914 14.7431 11.4695
14.8802C11.4905 15.0808 11.5 15.2891 11.5 15.5C11.5 16.0818 11.4278 16.6623 11.2268
17.1165C11.019 17.5862 10.6266 18 10 18C9.37343 18 8.98105 17.5862 8.77323 17.1165C8.57222
16.6623 8.5 16.0818 8.5 15.5C8.5 15.2891 8.50952 15.0808 8.53051 14.8802C8.20863 14.7431
7.93851 14.4951 7.77639 14.1708L4.19098 7H4C3.17157 7 2.5 6.32843 2.5 5.5V2.5C2.5 2.22386
2.72386 2 3 2ZM9.11803 14H10.882C11.0714 14 11.2445 13.893 11.3292 13.7236L14.691
7H5.30902L8.67082 13.7236C8.75552 13.893 8.92865 14 9.11803 14ZM9.52346 15C9.50787 15.1549
9.5 15.3225 9.5 15.5C9.5 16.0228 9.56841 16.4423 9.6877 16.7119C9.8002 16.9661 9.90782 17
10 17C10.0922 17 10.1998 16.9661 10.3123 16.7119C10.4316 16.4423 10.5 16.0228 10.5
15.5C10.5 15.3225 10.4921 15.1549 10.4765 15H9.52346Z
</PathGeometry>
<!-- Fluent UI System Icons : ic_fluent_color_20_regular.svg -->
<PathGeometry x:Key="ColorViewPaletteIconGeometry">
M9.75003 6.5C10.1642 6.5 10.5 6.16421 10.5 5.75C10.5 5.33579 10.1642 5 9.75003 5C9.33582
5 9.00003 5.33579 9.00003 5.75C9.00003 6.16421 9.33582 6.5 9.75003 6.5ZM12.75 7.5C13.1642
7.5 13.5 7.16421 13.5 6.75C13.5 6.33579 13.1642 6 12.75 6C12.3358 6 12 6.33579 12 6.75C12
7.16421 12.3358 7.5 12.75 7.5ZM15.25 9C15.25 9.41421 14.9142 9.75 14.5 9.75C14.0858 9.75
13.75 9.41421 13.75 9C13.75 8.58579 14.0858 8.25 14.5 8.25C14.9142 8.25 15.25 8.58579
15.25 9ZM14.5 12.75C14.9142 12.75 15.25 12.4142 15.25 12C15.25 11.5858 14.9142 11.25 14.5
11.25C14.0858 11.25 13.75 11.5858 13.75 12C13.75 12.4142 14.0858 12.75 14.5 12.75ZM13.25
14C13.25 14.4142 12.9142 14.75 12.5 14.75C12.0858 14.75 11.75 14.4142 11.75 14C11.75
13.5858 12.0858 13.25 12.5 13.25C12.9142 13.25 13.25 13.5858 13.25 14ZM13.6972
2.99169C10.9426 1.57663 8.1432 1.7124 5.77007 3.16636C4.55909 3.9083 3.25331 5.46925
2.51605 7.05899C2.14542 7.85816 1.89915 8.70492 1.90238 9.49318C1.90566 10.2941 2.16983
11.0587 2.84039 11.6053C3.45058 12.1026 3.98165 12.353 4.49574 12.3784C5.01375 12.404
5.41804 12.1942 5.73429 12.0076C5.80382 11.9666 5.86891 11.927 5.93113 11.8892C6.17332
11.7421 6.37205 11.6214 6.62049 11.5426C6.90191 11.4534 7.2582 11.4205 7.77579
11.5787C7.96661 11.637 8.08161 11.7235 8.16212 11.8229C8.24792 11.9289 8.31662 12.0774
8.36788 12.2886C8.41955 12.5016 8.44767 12.7527 8.46868 13.0491C8.47651 13.1594 8.48379
13.2855 8.49142 13.4176C8.50252 13.6098 8.51437 13.8149 8.52974 14.0037C8.58435 14.6744
8.69971 15.4401 9.10362 16.1357C9.51764 16.8488 10.2047 17.439 11.307 17.8158C12.9093
18.3636 14.3731 17.9191 15.5126 17.0169C16.6391 16.125 17.4691 14.7761 17.8842
13.4272C19.1991 9.15377 17.6728 5.03394 13.6972 2.99169ZM6.29249 4.01905C8.35686 2.75426
10.7844 2.61959 13.2403 3.88119C16.7473 5.68275 18.1135 9.28161 16.9284 13.1332C16.5624
14.3227 15.8338 15.4871 14.8919 16.2329C13.963 16.9684 12.8486 17.286 11.6305
16.8696C10.7269 16.5607 10.2467 16.1129 9.96842 15.6336C9.68001 15.1369 9.57799 14.5556
9.52644 13.9225C9.51101 13.733 9.50132 13.5621 9.49147 13.3884C9.48399 13.2564 9.47642
13.1229 9.46618 12.9783C9.44424 12.669 9.41175 12.3499 9.33968 12.0529C9.26719 11.7541
9.14902 11.4527 8.93935 11.1937C8.72439 10.9282 8.43532 10.7346 8.06801 10.6223C7.36648
10.408 6.80266 10.4359 6.31839 10.5893C5.94331 10.7082 5.62016 10.9061 5.37179
11.0582C5.31992 11.0899 5.2713 11.1197 5.22616 11.1463C4.94094 11.3146 4.75357 11.39
4.54514 11.3796C4.33279 11.3691 4.00262 11.2625 3.47218 10.8301C3.0866 10.5158 2.90473
10.0668 2.90237 9.48908C2.89995 8.89865 3.08843 8.20165 3.42324 7.47971C4.09686 6.0272
5.28471 4.63649 6.29249 4.01905Z
</PathGeometry>
<!-- Fluent UI System Icons : ic_fluent_options_20_regular.svg -->
<PathGeometry x:Key="ColorViewComponentsIconGeometry">
M14.95 5C14.7184 3.85888 13.7095 3 12.5 3C11.2905 3 10.2816 3.85888 10.05 5H2.5C2.22386
5 2 5.22386 2 5.5C2 5.77614 2.22386 6 2.5 6H10.05C10.2816 7.14112 11.2905 8 12.5 8C13.7297
8 14.752 7.11217 14.961 5.94254C14.9575 5.96177 14.9539 5.98093 14.95 6H17.5C17.7761 6 18
5.77614 18 5.5C18 5.22386 17.7761 5 17.5 5H14.95ZM12.5 7C11.6716 7 11 6.32843 11 5.5C11
4.67157 11.6716 4 12.5 4C13.3284 4 14 4.67157 14 5.5C14 6.32843 13.3284 7 12.5 7ZM9.94999
14C9.71836 12.8589 8.70948 12 7.5 12C6.29052 12 5.28164 12.8589 5.05001 14H2.5C2.22386
14 2 14.2239 2 14.5C2 14.7761 2.22386 15 2.5 15H5.05001C5.28164 16.1411 6.29052 17 7.5
17C8.70948 17 9.71836 16.1411 9.94999 15H17.5C17.7761 15 18 14.7761 18 14.5C18 14.2239
17.7761 14 17.5 14H9.94999ZM7.5 16C6.67157 16 6 15.3284 6 14.5C6 13.6716 6.67157 13 7.5
13C8.32843 13 9 13.6716 9 14.5C9 15.3284 8.32843 16 7.5 16Z
</PathGeometry>
<!-- This radius should follow ControlCornerRadius -->
<CornerRadius x:Key="ColorViewTabBackgroundCornerRadius">3</CornerRadius>
<ControlTheme x:Key="ColorViewPaletteListBoxTheme"
TargetType="ListBox">
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.IsScrollChainingEnabled" Value="True" />
<Setter Property="Template">
<ControlTemplate>
<Border Name="border"
ClipToBounds="{TemplateBinding ClipToBounds}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}">
<ScrollViewer Name="PART_ScrollViewer"
HorizontalScrollBarVisibility="{TemplateBinding (ScrollViewer.HorizontalScrollBarVisibility)}"
VerticalScrollBarVisibility="{TemplateBinding (ScrollViewer.VerticalScrollBarVisibility)}"
IsScrollChainingEnabled="{TemplateBinding (ScrollViewer.IsScrollChainingEnabled)}"
IsDeferredScrollingEnabled="{TemplateBinding (ScrollViewer.IsDeferredScrollingEnabled)}"
AllowAutoHide="{TemplateBinding (ScrollViewer.AllowAutoHide)}">
<ItemsPresenter Name="PART_ItemsPresenter"
ItemsPanel="{TemplateBinding ItemsPanel}"
Margin="{TemplateBinding Padding}"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter>
</ControlTheme>
<ControlTheme x:Key="ColorViewPaletteListBoxItemTheme"
TargetType="ListBoxItem">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Padding" Value="0" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Grid UseLayoutRounding="False">
<ContentPresenter Name="PART_ContentPresenter"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" />
<Rectangle x:Name="BorderRectangle"
IsHitTestVisible="False"
StrokeThickness="3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</Grid>
</ControlTemplate>
</Setter>
<Style Selector="^ /template/ Rectangle#BorderRectangle">
<Setter Property="Stroke" Value="{DynamicResource SystemControlHighlightListAccentLowBrush}" />
<Setter Property="Opacity" Value="0" />
</Style>
<Style Selector="^:pointerover /template/ Rectangle#BorderRectangle"
x:DataType="Color">
<Setter Property="Stroke" Value="{Binding Converter={StaticResource ContrastBrushConverter}}" />
<Setter Property="Opacity" Value="0.5" />
</Style>
<Style Selector="^:selected /template/ Rectangle#BorderRectangle"
x:DataType="Color">
<!-- The below and above lines really should be:
'Value="{Binding Converter={StaticResource ContrastBrushConverter}, ConverterParameter={DynamicResource TextControlForeground}}"'
However, DynamicResource and Binding is not currently supported in Avalonia for converter parameters.
This means certain colors with transparency less than 50% may have a selection border that is difficult
to see over top of the default control/window background. Since palettes do not usually have transparency
it is considered better to disable this functionality rather than work around it with a multi-value
converter. This should be revisited if Avalonia supports the above code in the future. -->
<Setter Property="Stroke" Value="{Binding Converter={StaticResource ContrastBrushConverter}}" />
<Setter Property="Opacity" Value="1" />
</Style>
</ControlTheme>
<!-- Based on the Simple ToggleButton ControlTheme -->
<ControlTheme x:Key="ColorViewColorModelRadioButtonTheme"
TargetType="RadioButton">
<Setter Property="Background" Value="{DynamicResource ThemeControlMidBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ThemeForegroundBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource ThemeBorderLowBrush}" />
<Setter Property="BorderThickness" Value="{DynamicResource ThemeBorderThickness}" />
<Setter Property="CornerRadius" Value="0" />
<Setter Property="Padding" Value="4" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<ControlTemplate>
<ContentPresenter x:Name="PART_ContentPresenter"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Padding="{TemplateBinding Padding}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
</ControlTemplate>
</Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:checked /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ThemeControlHighBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource ThemeBorderMidBrush}" />
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="BorderBrush" Value="{DynamicResource ThemeBorderMidBrush}" />
</Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ThemeControlHighBrush}" />
</Style>
</ControlTheme>
<!-- Based on the Simple TabItem ControlTheme -->
<ControlTheme x:Key="ColorViewTabItemTheme"
TargetType="TabItem">
<Setter Property="Foreground" Value="{DynamicResource ThemeForegroundLowBrush}" />
<Setter Property="Padding" Value="6,0,6,0" />
<Setter Property="Margin" Value="0" />
<Setter Property="MinHeight" Value="{DynamicResource ColorViewTabStripHeight}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<ControlTemplate>
<Border Name="PART_LayoutRoot"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
Padding="{TemplateBinding Padding}">
<Panel>
<ContentPresenter Name="PART_ContentPresenter"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
FontFamily="{TemplateBinding FontFamily}"
FontSize="{TemplateBinding FontSize}"
FontWeight="{TemplateBinding FontWeight}" />
<Border Name="PART_SelectedPipe"
Height="2"
Margin="0,0,0,2"
HorizontalAlignment="Stretch"
VerticalAlignment="Bottom"
Background="{DynamicResource ThemeAccentColor}"
CornerRadius="{DynamicResource ControlCornerRadius}"
IsVisible="False"/>
</Panel>
</Border>
</ControlTemplate>
</Setter>
<Style Selector="^:selected">
<Setter Property="Background" Value="{DynamicResource ThemeAccentBrush4}" />
</Style>
<Style Selector="^:selected /template/ Border#PART_SelectedPipe">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="^:pointerover /template/ Border#PART_LayoutRoot">
<Setter Property="Background" Value="{DynamicResource ThemeControlHighlightMidBrush}" />
</Style>
<Style Selector="^:selected:pointerover /template/ Border#PART_LayoutRoot">
<Setter Property="Background" Value="{DynamicResource ThemeAccentBrush3}" />
</Style>
</ControlTheme>
<ControlTheme x:Key="{x:Type ColorView}"
TargetType="ColorView">
<Setter Property="CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
<!-- Alpha position should match CSS (and default slider order) instead of XAML/WinUI -->
<Setter Property="HexInputAlphaPosition" Value="Trailing" />
<Setter Property="Palette">
<controls:FluentColorPalette />
</Setter>
<Setter Property="Template">
<ControlTemplate TargetType="{x:Type ColorView}">
<Grid RowDefinitions="Auto,Auto">
<!-- Backgrounds -->
<!-- TODO: Background="{DynamicResource ColorViewTabBackgroundBrush}" -->
<Border x:Name="TabBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Height="48"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Background="{DynamicResource SystemControlBackgroundBaseLowBrush}"
BorderBrush="{DynamicResource ColorViewTabBorderBrush}"
CornerRadius="{DynamicResource ColorViewTabBackgroundCornerRadius}" />
<Border x:Name="ContentBackgroundBorder"
Grid.Row="0"
Grid.RowSpan="2"
Margin="0,48,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource BottomCornerRadiusFilterConverter}}"
Background="{DynamicResource ColorViewContentBackgroundBrush}"
BorderBrush="{DynamicResource ColorViewContentBorderBrush}"
BorderThickness="0,1,0,0" />
<TabControl x:Name="PART_TabControl"
Grid.Row="0"
Height="338"
Width="350"
Padding="0"
SelectedIndex="{Binding SelectedIndex, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}">
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="0"
Rows="1" />
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
<!-- Spectrum Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorSpectrumVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}"
Background="Transparent">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewSpectrumIconGeometry}" />
</Border>
</TabItem.Header>
<Grid RowDefinitions="*"
Margin="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
MinWidth="32" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"
MinWidth="32" />
</Grid.ColumnDefinitions>
<primitives:ColorSlider x:Name="ColorSpectrumThirdComponentSlider"
AutomationProperties.Name="Third Component"
Grid.Column="0"
IsAlphaVisible="False"
IsPerceptive="True"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="{Binding ThirdComponent, ElementName=ColorSpectrum}"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="0,0,12,0"
IsVisible="{TemplateBinding IsColorSpectrumSliderVisible}"/>
<primitives:ColorSpectrum x:Name="ColorSpectrum"
Grid.Column="1"
Components="{TemplateBinding ColorSpectrumComponents}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
MinHue="{TemplateBinding MinHue}"
MaxHue="{TemplateBinding MaxHue}"
MinSaturation="{TemplateBinding MinSaturation}"
MaxSaturation="{TemplateBinding MaxSaturation}"
MinValue="{TemplateBinding MinValue}"
MaxValue="{TemplateBinding MaxValue}"
Shape="{TemplateBinding ColorSpectrumShape}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<primitives:ColorSlider x:Name="ColorSpectrumAlphaSlider"
AutomationProperties.Name="Alpha Component"
Grid.Column="2"
Orientation="Vertical"
ColorModel="Hsva"
ColorComponent="Alpha"
HsvColor="{Binding HsvColor, ElementName=ColorSpectrum}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Margin="12,0,0,0"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
<!-- Palette Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorPaletteVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}"
Background="Transparent">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewPaletteIconGeometry}" />
</Border>
</TabItem.Header>
<ListBox Theme="{StaticResource ColorViewPaletteListBoxTheme}"
ItemContainerTheme="{StaticResource ColorViewPaletteListBoxItemTheme}"
ItemsSource="{TemplateBinding PaletteColors}"
SelectedItem="{Binding Color, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource DoNothingForNullConverter}, Mode=TwoWay}"
UseLayoutRounding="False"
Margin="12">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type Color}">
<Border AutomationProperties.Name="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
ToolTip.Tip="{Binding Converter={StaticResource ColorToDisplayNameConverter}}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Border.Background>
<SolidColorBrush Color="{Binding}" />
</Border.Background>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding $parent[ColorView].PaletteColumnCount}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</TabItem>
<!-- Components Tab -->
<TabItem Theme="{StaticResource ColorViewTabItemTheme}"
IsVisible="{TemplateBinding IsColorComponentsVisible}">
<TabItem.Header>
<Border Height="{DynamicResource ColorViewTabStripHeight}"
Background="Transparent">
<PathIcon Width="20"
Height="20"
Data="{DynamicResource ColorViewComponentsIconGeometry}" />
</Border>
</TabItem.Header>
<Grid ColumnDefinitions="Auto,Auto,*"
RowDefinitions="Auto,24,1*,1*,1*,1*,12"
Margin="12">
<!-- Top color model & Hex input -->
<Grid Grid.Column="0"
Grid.ColumnSpan="3"
Grid.Row="0"
ColumnDefinitions="1*,12,1*">
<!-- Content RGB/HSV names are hard-coded and considered universal -->
<!-- RadioButtons are styled to look like a 'SegmentedControl' or 'ButtonGroup' -->
<Grid ColumnDefinitions="1*,1*"
IsVisible="{TemplateBinding IsColorModelVisible}">
<RadioButton x:Name="RgbRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="0"
Content="RGB"
CornerRadius="0,0,0,0"
BorderThickness="1,1,0,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=TwoWay}" />
<RadioButton x:Name="HsvRadioButton"
Theme="{StaticResource ColorViewColorModelRadioButtonTheme}"
Grid.Column="1"
Content="HSV"
CornerRadius="0,0,0,0"
BorderThickness="0,1,1,1"
Height="{Binding ElementName=PART_HexTextBox, Path=Bounds.Height}"
IsChecked="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=TwoWay}" />
</Grid>
<Grid x:Name="HexInputGrid"
Grid.Column="2"
IsVisible="{TemplateBinding IsHexInputVisible}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
Height="32"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="#"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
<!-- Color updated in code-behind -->
<!-- Max length must include an optional '#' prefix (#FFFFFFFF) -->
<TextBox x:Name="PART_HexTextBox"
Grid.Column="1"
AutomationProperties.Name="Hexadecimal Color"
Height="32"
MaxLength="9"
Padding="10,6,6,5"
VerticalContentAlignment="Center"
HorizontalAlignment="Stretch"
CornerRadius="0,0,0,0" />
</Grid>
</Grid>
<!-- Color component editing controls -->
<!-- Component 1 RGB:Red HSV:Hue -->
<Border Grid.Column="0"
Grid.Row="2"
Height="{Binding ElementName=Component1NumericUpDown, Path=Bounds.Height}"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="R"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}"/>
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="H"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component1NumericUpDown"
Grid.Column="1"
Grid.Row="2"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component1Slider}"
Maximum="{Binding Maximum, ElementName=Component1Slider}"
Value="{Binding Value, ElementName=Component1Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component1Slider"
Grid.Column="2"
Grid.Row="2"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component1"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 2 RGB:Green HSV:Saturation -->
<Border Grid.Column="0"
Grid.Row="3"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component2NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="G"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="S"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component2NumericUpDown"
Grid.Column="1"
Grid.Row="3"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component2Slider}"
Maximum="{Binding Maximum, ElementName=Component2Slider}"
Value="{Binding Value, ElementName=Component2Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component2Slider"
Grid.Column="2"
Grid.Row="3"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component2"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Component 3 RGB:Blue HSV:Value -->
<Border Grid.Column="0"
Grid.Row="4"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=Component3NumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentTextInputVisible}">
<Panel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="B"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Rgba}, Mode=OneWay}" />
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="V"
IsVisible="{TemplateBinding ColorModel, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static controls:ColorModel.Hsva}, Mode=OneWay}" />
</Panel>
</Border>
<NumericUpDown x:Name="Component3NumericUpDown"
Grid.Column="1"
Grid.Row="4"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=Component3Slider}"
Maximum="{Binding Maximum, ElementName=Component3Slider}"
Value="{Binding Value, ElementName=Component3Slider}"
IsVisible="{TemplateBinding IsComponentTextInputVisible}" />
<primitives:ColorSlider x:Name="Component3Slider"
Grid.Column="2"
Grid.Row="4"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Component3"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{TemplateBinding IsComponentSliderVisible}" />
<!-- Alpha Component -->
<Border Grid.Column="0"
Grid.Row="5"
Width="{DynamicResource ColorViewComponentLabelWidth}"
Height="{Binding ElementName=AlphaComponentNumericUpDown, Path=Bounds.Height}"
Background="{DynamicResource ThemeControlMidBrush}"
BorderBrush="{DynamicResource ThemeBorderMidBrush}"
BorderThickness="1,1,0,1"
CornerRadius="0,0,0,0"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<TextBlock x:Name="AlphaComponentTextBlock"
Foreground="{DynamicResource ThemeForegroundBrush}"
FontWeight="SemiBold"
Text="A"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Border.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</Border.IsVisible>
</Border>
<NumericUpDown x:Name="AlphaComponentNumericUpDown"
Grid.Column="1"
Grid.Row="5"
AllowSpin="True"
ShowButtonSpinner="False"
Height="32"
Width="{DynamicResource ColorViewComponentTextInputWidth}"
CornerRadius="0,0,0,0"
Margin="0,0,12,0"
VerticalAlignment="Center"
NumberFormat="{StaticResource ColorViewComponentNumberFormat}"
Minimum="{Binding Minimum, ElementName=AlphaComponentSlider}"
Maximum="{Binding Maximum, ElementName=AlphaComponentSlider}"
Value="{Binding Value, ElementName=AlphaComponentSlider}"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<NumericUpDown.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentTextInputVisible" />
</MultiBinding>
</NumericUpDown.IsVisible>
</NumericUpDown>
<primitives:ColorSlider x:Name="AlphaComponentSlider"
Grid.Column="2"
Grid.Row="5"
Orientation="Horizontal"
IsRoundingEnabled="True"
IsSnapToTickEnabled="True"
TickFrequency="1"
ColorComponent="Alpha"
ColorModel="{TemplateBinding ColorModel, Mode=OneWay}"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsEnabled="{TemplateBinding IsAlphaEnabled}">
<primitives:ColorSlider.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsAlphaVisible" />
<Binding RelativeSource="{RelativeSource TemplatedParent}"
Path="IsComponentSliderVisible" />
</MultiBinding>
</primitives:ColorSlider.IsVisible>
</primitives:ColorSlider>
</Grid>
</TabItem>
</TabControl>
<!-- Previewer -->
<!-- Note that the drop shadow is allowed to extend past the control bounds -->
<primitives:ColorPreviewer Grid.Row="1"
HsvColor="{Binding HsvColor, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
IsAccentColorsVisible="{TemplateBinding IsAccentColorsVisible}"
Margin="12,0,12,12"
IsVisible="{TemplateBinding IsColorPreviewVisible}" />
</Grid>
</ControlTemplate>
</Setter>
<!--
<Style Selector="^ /template/ primitives|ColorSlider#ColorSpectrumThirdComponentSlider[ColorComponent=Component1]">
<Setter Property="IsPerceptive" Value="True" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component1Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component2Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
<Style Selector="^ /template/ primitives|ColorSlider#Component3Slider[ColorModel=Rgba]">
<Setter Property="IsPerceptive" Value="False" />
</Style>
-->
</ControlTheme>
</ResourceDictionary>
<EFBFBD> <Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="using:Avalonia.Controls.Converters">
<Styles.Resources>
<ResourceDictionary>
<!-- Shared Resources -->
<VisualBrush x:Key="ColorControlCheckeredBackgroundBrush"
TileMode="Tile"
Stretch="Uniform"
DestinationRect="0,0,8,8">
<VisualBrush.Visual>
<Image Width="8" Height="8">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup>
<GeometryDrawing Geometry="M0,0 L2,0 2,2, 0,2Z"
Brush="Transparent" />
<GeometryDrawing Geometry="M0,1 L2,1 2,2, 1,2 1,0 0,0Z"
Brush="#19808080" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</VisualBrush.Visual>
</VisualBrush>
<!-- TODO: Enable the commented-out resources below once Avalonia supports extending light/dark resource dictionaries -->
<SolidColorBrush x:Key="ColorControlLightSelectorBrush" Color="#FFFFFFFF" />
<SolidColorBrush x:Key="ColorControlDarkSelectorBrush" Color="#E4000000" />
<!--<DynamicResource x:Key="ColorControlDefaultSelectorBrush" ResourceKey="SystemControlForegroundBaseHighBrush" />-->
<SolidColorBrush x:Key="ColorViewContentBackgroundBrush" Color="Transparent" />
<SolidColorBrush x:Key="ColorViewContentBorderBrush" Color="Transparent" />
<!--<DynamicResource x:Key="ColorViewTabBackgroundBrush" ResourceKey="SystemControlBackgroundBaseLowBrush" />-->
<SolidColorBrush x:Key="ColorViewTabBorderBrush" Color="Transparent" />
<!-- Shared Converters -->
<converters:EnumToBoolConverter x:Key="EnumToBoolConverter" />
<converters:ToBrushConverter x:Key="ToBrushConverter" />
<converters:CornerRadiusFilterConverter x:Key="LeftCornerRadiusFilterConverter" Filter="TopLeft, BottomLeft"/>
<converters:CornerRadiusFilterConverter x:Key="RightCornerRadiusFilterConverter" Filter="TopRight, BottomRight"/>
<converters:CornerRadiusFilterConverter x:Key="TopCornerRadiusFilterConverter" Filter="TopLeft, TopRight"/>
<converters:CornerRadiusFilterConverter x:Key="BottomCornerRadiusFilterConverter" Filter="BottomLeft, BottomRight"/>
<converters:CornerRadiusToDoubleConverter x:Key="TopLeftCornerRadiusConverter" Corner="TopLeft" />
<converters:CornerRadiusToDoubleConverter x:Key="BottomRightCornerRadiusConverter" Corner="BottomRight" />
<ResourceDictionary.MergedDictionaries>
<!-- Primitives -->
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Simple/ColorPreviewer.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Simple/ColorSlider.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Simple/ColorSpectrum.xaml" />
<!-- Controls -->
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Simple/ColorPicker.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Simple/ColorView.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Styles.Resources>
</Styles>
I+/!AvaloniaResourceXamlInfo<AvaloniaResourceXamlInfo xmlns="http://schemas.datacontract.org/2004/07/Avalonia.Markup.Xaml.PortableXaml" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ClassToResourcePathIndex xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/></AvaloniaResourceXamlInfo>BSJB v4.0.30319lL(#~<00>((+#Strings<00>S\ #US<]#GUIDL]<#Blob
W<1F> <00>3<16><00>&<00><00>8 <00>4 ). F<00><00>J~ J
~<1D>g  #J<00> <00>
ub<00>&J
2<02><00> 
$s%
<00>#s%
#<23>p J
'<27><15>
g<01>
;s
 sb<00><14><00>J<00>&<26> <00><14>
n<1D><00><01><00>J<00>J<00><01><15> <00><14> <18> &<26>
;<11><00>S!<00><14>
{ <20>%
<00>#<23>%
* 7'<00><1F>
<00>
<EFBFBD>
<00> <20> <02>
<00><1F>
a'<27>
<00> <20>
<00> <00>J
$' 
<00>&<26>%
"<22>J
<00><08><00>J
L<0E><00>
J
<00><1B>!
<00><1C>
<00><10>3<19><00>JJJ<00>J0!J<00>J<00>J <0A>
<00>!b<00><1E>
A!<21>
<00><10>
<00><10><00><1A>
 <20>%<00>JC<1A>
@
<00>#<23>
<00><1E>
!<21> Z<00> <00>J/JC <0B>a%J<00>J
<00><02>
#<23>
<00> <0A><00>
Jy

<00><01>M<00>J
8s%
<00> s%#<11>
<00><08>
<00>s%6<11>
<00><10>
<00><08><00><11> I
<EFBFBD><00> <0B><00><1D>
: <20>%
<00><1F>%
!<21><00>J
<02><00>J
<00> <09>
<02>
9<18><1A>
] <20>
x!<21>%
K <20>%<00>J
<00>$<24>
<00>$<24>%
s<08>%
j<1B>%
<00>
<EFBFBD>%
<00>#<23>%<00>
<EFBFBD>
<00><01><00>J
+ <00><02>
<00><1C>
"<22>q<1A>%
% b9J<00>J<00><01> <00>J
<00>"V<00>J
<00><0F>
<00><1D>
<00>"V<00>JN S!<00> <00>
<00> s<00> j<00> M {d  ! > <00> <00> <00> ]<00><18> <00><1F> n$<24> F<11>  % <0C> : <0C> 
<00> <0C> <1B> 0*"<22> <00>
<EFBFBD> &<26> Y}$<24> ?1<1B>!D1$<1C>!D4<00><1B>!F=<00><1B>!F@<00><1B>!FCA<1C>YFF><1A>5NNqX`<00><15>Y_b!<00><00><00><00><00><00>,q<01><00><00>,<1B><00><00><00><00>!<21><00><00><00><00><00>q<01><00>&<26>q<01><00>$%<25><00><00>"<18><00><00><00><04>q<01><00><1C>!<00><00><00><1B>!<00><00><00>%<25><00><00>Z <00><00><00><00><00><06><03>V<><10>V<>a<10><00><07><08><06><03>V<><56><03>V<>I<02>V<><56><02>V<> <03><06><03>V<><56><04>V<><56><03>O%<25>1}&P%<25>6<00>*p6)<29>6<00>*<2A>6u*<2A><06><03>V<> V<><56> V<>? V<><56> V<>3 V<>M <06><03>V<><56>&V<><56>C<00>&2<00>6P:6"*=6<00>)E6U*M6<00>(U6*]6*e6Y(m6r'm6<00>'m6w(m6<00>'m6<00>'m6<00>(m6<00>'m6(m68(m6<00>(m6<00>(m6F)t6<00>)t6f)t67)t6<00>)t6U)t6?*{6<00>*t6')<29>6+t<06><03>V<><56>V<><56>V<><56>V<><56><00>:<00><07>C<00>:<00>N<00>N<00>N<00>N6*e6Y(mCQ:f<19> 6"*=6<00>*<2A> 6<00>)E6*e6<00>'m6w)m6<00>'m<00> <0B>_ <00> d <00><02><00><02>h `p C<00>:Z:<00>:<00>:<00><1F> B$<24><00> <09> | <09> 4%<25> <00><11> &
<EFBFBD> <00> <0B> 9
<EFBFBD> <00> <0B> +# r<11> X<19> <1A> <00><19> <00><19> <00><19> x<19> <00><19> <00><19> <00><19> <00><19> <1A> <00><00> z  <00><15><16><00><16><00><16>:<16>Z<16><00><1C>/ 6"*=6b*M6*e6F)t6<00>)t6f)t67)t6<00>)t6U)t6)U6<00>* 6Y<03><00>
<00><15>
&<26>B" <00><0E><00><0E>o<17><00><17>*<0F><00><0F>Qh <00>h <00>h <00>h h bh t<1F> <00> <20><00> <0B>_ <00> <20>:<01>`p 1<00><1E>1<00><1E>1P&1g&1"t#<23><00><10><00> :<00>$<24>M Q<11><00>:<00><17>)h j<1C>| <00> <00> <06><03>V<><56><11>V<> <09><06><03>V<>P<1C>V<><56><1A><00> v p <00>=<00>AP <00><18><1D>f <00><08><1C>o <00>w<1D>x <00>@%<25>`$<00> %Hd$<00> <09>$Hg$<00>S<00>$<00><18><1D><00>$<00><18>Z<00>$<00> %H<00>$<00> <09>$H<00>$<00>S<00>$<00><18><1D>%<00><18>Z<00> %H<00> <0A>$H<00>S#*<00><18><1D>+*<00><08>$<24><*<00><18>Z<00>*<00><18><1D><00>*<00><00>&<26><00>*<00><00>&<26>$+<00><01><17><00>,<00><00> ;x-<00>gT<00>/<00>A<05><00>/<00><01><1C><00>/<00><<1D>0<00><00><1C> 0<00>><1D>@0<00>Q0<00><00>"Y0<00>V~ f0<00>`<1C> v0<00><08>
' <00>0<00>f2 <00>0<00>k <00>0<00>"7 <00>0<00>y<05> <00>0<00><08> <09> <00>0<00><08> <09> <00>0<00><08> F <00>0<00> K <00>0<00>>&Q 1<00><18>Z <00>3<00>.<00> <00>3<00><01> <00>3<00>a%+ 4<00> + <00>$<00><18><1D> "4<00><08> <09> *4<00>T2 44<00>a%+ <00>4<00> +5<00><00>t<00>5<00><00><10>,6<00><00>"<22><00>6<00><18><1D><00>6<00>I<00><00>7<00>a%+<00>7<00> +<00>$<00><18><1D><00>7<00>a%+4<00> +<00>$<00><18><1D><8<00>a%+4<00> +<00>$<00><18><1D> <00>*<00><18><1D> 9<00>^"<22> H:<00><00> ; <00>:<00>gT ;<00>A<05> (;<00>~<06> <00>;<00>k"<00>;<00><18>Z"<00>;<00><18><1D>"<00>;<00><00><1E>"<00><<00>b<08>"=<00>_v
"H=<00>><1F>"D?<00>%<1F>
"$A<00><00><1C>"<00>A<00><00><1C>"<00>B<00>gT",E<00>A<05>"@E<00>V~"ME<00>R$<24>
"ZE<00>B "gE<00>k"tE<00><08> <09>"<00>E<00><08><0F>"<00>E<00><08><05>"<00>E<00><18>Z"LF<00><01>%<25>"<00>H<00><01>
<EFBFBD> "<00>H<00><18><1D>"<00>I<00><00> ;"oK<00> <09> "~K<00><00><08> "<00>K<00>M"<22>"@L<00>)<19> "<00>M<00><00>"<22> "N<00><00>" ">N<00>M "hN<00>gT"(Q<00> <1D>"<00>Q<00>/<05>"<00>R<00><00><1E>"<S<00><00>I "<00>T<00><00>$| "TV<00><00> <0B>"<00>[<00><00><05> "<00>[<00>3<07> $<00>[<00><00><06>&\\<00><00><07> (<00>\<00>9<06> *<00>\<00>?<19>,<00>\<00><00>&b, f<00><00><0F>,<00>o<00>;<1E>,<00>r<00>@#<23>,ss<00>V~,<00>s<00>"3,<00>s<00>k,<00>s<00><08>H,<00>s<00>}H,<00>s<00><08>H,<00>s<00><08>H,<00>s<00>]H,<00>s<00>H,<00>s<00><08>
8,<00>s<00>$<24>
,<00>s<00>/$N,t<00><18>Z,,u<00><00><00>,4u<00>!<01>-<u<00><18>Z.<00>$<00><18><1D>.Hu<00>q<00>.<00>$<00><18><1D>/Pu<00><00><00>/<00>v<00>A<01>/<00>y<00><01>%<25>/<00><00><01>
<EFBFBD> /<00><00><00>/<00><><00>l"/<18><00>\
e/<00><><00>j
<EFBFBD>/<00><><00><18>Z/<18><00><00><04>/<00><><00>e$<24>/<00><><00>w2/0<><00>7<04>/<00>$<00><18><1D>/<00><><00><00><00>/<00><><00>T<02>/n<><00><18><1D>/<00><><00><18>7/<00><><00>l<1D>/ȑ<00><00><04>0<00><><00><18><1D>0H<><00><00>0<00><><00><00>%1p<><00>a%+14<00> +3<00><><00><00>#55<00>$<00><18><1D>5<00><><00>.<08>5<00><><00>a%+54<00> +7ƕ<00><18><1D>9<00><>F<01><1D>9<00><>A<01>_9<00><>F<01>$<24>9<00><>Am <0B>9<00><>A<01>%<25>9<00><00><00><00><00><00><00><00><00><00><00><00> <00><00> <00><00> <00><00> <00><00> <00><00>=  <00><00><00><00><00>uu"<00>#<00>%~&!<00><1D><00><1D>1<00>9d <00>/~5 '#;9<00>#CA,L ##S)<00><1D>I<00>b<00>g1<00>wq\<0F><01><00>*p#<1B><01>)<29>#<1B><01><00>*<2A>$#<1B><01>u*<2A>,#<1B><01><00><1D><00><00><1D><01><00><01><00><1D><00><00>%<25><02>N'<27>4C<0F>4<00>#<23>qp<0F><02><00>%<25><01> <20><01><1D><<00>$<24>
<EFBFBD>!<01>%<25>y<00> <0B>)(<15>%H)9<15>
<EFBFBD>),&HD<00><1D>9L<00><1D>9<01>"I<01>
!YH'9<01>9<01>"<03><00> ;<03>gTiT'[q'a<00>%kyuy<01>u<03><00>~T<00><1D>T<05><03><05><03><01><1D><02>h<08><03>n%<25>\8 <09>~<03>r<03>l<03><00><1D><03>x<03><03><00><03><03><00><03><03><00><1D>1<01>&qS<04><01> [d<00><1D>q8ll<00><1D><02><01><1D><04><01>~<03>V~qef<03>t<00>#<23>)<00><10><02> `<06><01>f<06><00>#<23><02><00>"n<06>Q<15><02><00><10> <02><15>4<00><1D>|<00><08>|<00>H<01><00><1D><06><15>|<15><06>{#<23>)<02>#9W<01><01>1I<02>&<26>A,G<07><00><1D>9U[9h[<07><00><0F>a<02> z<07><01>$[i<02><1D>y<02><1E> <09>'#<23> <09><02>
<EFBFBD>[%
<EFBFBD><02>
<EFBFBD>f<03><03>Mm
<EFBFBD>t<15>
<EFBFBD><02><15>
<EFBFBD><02><0E>
<EFBFBD>
<EFBFBD>
<EFBFBD><02><0E><03><02><15><03>h<15><03><02><0E>
<EFBFBD><00><1D>
igT0*<2A>
q<02> <0B><00>i)<29>
<EFBFBD><02>)<29>
<EFBFBD><02>)<29>
<EFBFBD>C<02>
<EFBFBD><00><02>
<EFBFBD><02>1 ? <09> i<11> <01><1D> <0B><02><10><03><02><02> <0B>^#<23><03><00><1D> i<02><17> 1Y<1B> <0B><02><06><02><02><06> <0B><02>#<23>9<03><1D> <0B>S<08> <0B><02><18> <0B><02>#<23><00><02>%<25><00><02>
<EFBFBD> <0B><02>
<EFBFBD> <0B><00><1D><00>&# <0C><00><1D>9<01>L 9 L 9]L <0C><00><1D>9_ y<03> j <0C><00><1D><02><03><08> <01>)<29> <0C><00><1D><02>%<1A> <0C><00>$H <09> <01><08> 9<01>L 9L 9nL 9"_ 9)<19> 1t!<21> <00><0F> 5<18> A<01><05><02><03><15> <0C><00>"<22> <0C><00>" 9M <0A><03><1D><01>"<05><02>Ge <0A><03><03><03><03><03><03><02>k <0A>(&k <0A>i%q <0A>Mq <0A>v <0A>f!q <0A><02>q <03><10>a8#<23> ^#<23>a2<1A> 9<01><06>9<01>"<22> is<1B> <0A><03>
<EFBFBD> <0A>- <0B> i<03>$<24> <0A><05><03><05><03><02>k <0A><02>q <01>&<26>
<04><11> qa =<0F><00><1D>q#<23><03><10>
i#<23>
<EFBFBD><00>Q<04><00><1D>1<03><18><14><01><04>!Y<1B> <0B> `<06>S
<EFBFBD><02>M5<15>PD<15><00>$H<01><00>&W<15><05>
9<04>]<15>PD<15><05>
I<04>
s<15>j!zQEAA<08><15><00>HIM <0B><15><00><1D><00><00><1D> U<1F>1)<11><15><00><1D>1<03><18>i<04><1D><01><02><15> <0B>',<16><02>q <0A><00>O<16><00>`qLfy<04>l<16><04>/<01><04>rq<02>x<16><02><0E><16><15><16>v <0A><00><04><00>%# <0C><00><1D><03>C<0F>4<00><0E><02><00><0E><02>[<04><04><1D><01><04>_<17><04>Q<04><04><1D><00><04><1D><17><04><1D><01><04><1D><00><04><1D><17><04><1D><01><04><1D><01><04><1D><01><04><1D><01><04><1D><05><1D> <05><1D><05><1D><05>Q<00> <00><00> <00>$<00>(<00>0<00>4<00>E~I<00>X<00>\<00>`<00>d<00>hlt<00>x<00> <00><00> <00><00><01><01><01> <01><00><02><00><02><03><03>'<00><08>;.<00>e.<00>n.<00><08>.<00><08>.<00> .<00>I.<00><08>.<00><08>.<00><08>.<00><08>.<00><08>.<00><08>.<00><08>.<00>5.<00>C.<00>f.<00><08>.<00>.<00><08>.<00><08>.<00>.<00>i.<00><08>.<00>.<00>} .<00><08> .<00>$!.<00><08>".<00>$.<00>p%.<00><08>&.<00>D(.<00><08>).<00>+.<00>m+.<00><08>+.<00>,.<00>p-.<00><08>..<00>(/.<00><08>0.<00><08>1.<00>E3.<00><08>4.<00>6.<00><08>7.<00><08>8.<00>\:.<00><08>;@ <00>` <00><00> <00><00> <00><00> <01> #<01> #$%)<01><00>)<01><00>Dd<01><01><01><02><01><05><01><02><05><01><01> <01><01><01>  !s}As}ac<02>cc<02><02>c<02>*c<02><02>c<02>P <09><01><02><01><02>[7 <0B><01> <00><00><01><02><01><02><02><02><0F><02>H<10><02><02><10><02>_<11><02><02><11><02>z<12><02><13><02><02><13>[L<14><01> <00><00> <00># <00>$C<03>CDc<03>cd<01> <00><00><01> <00><00><01><01>s'<02> <00><00>  ! D <01> <00><00> <01> <00><00> <00><00>  D `<05> <01><05> <01> <00> <00> <06> $@<06> Dd<01> <00><00><01> <00><00><01><06> <01><01><06> <01><07> <07>as}<01> <00><00><07> <01>s}<01><07> <08>  <08> `<08> <01><08> <01> <00><00> <00><00>s'<02> <00>  !  A  a  <01> s'<02> <00>
<EFBFBD>'

 `
<EFBFBD>A <02> <02> s'<02> <00><00>  <01>    !  A  a  <01>  <01>  <01>  <01>   ! A a <01> <01> <01> <01><0E><03> <0A>  ! A   <00>@ <00>A<02><13><02><02><02>!Aa<02><02><14> <01><14> <01>@ <00>`<15> <01><15> <01><02><01> <00><01><02>B<03>V7R[<06><06> $8lq<07> 
}
<EFBFBD>
<EFBFBD>
<EFBFBD>
u <0B>  * 4 < O <0A> <0A> <0A> 8<0E>"<0F><14><14>k<15><15>A<16><16> 1D
'#(&)<00><1C>{<1D>%^<00>$^%^<00>$^%^<00>$^<00>$<24>~<1D><00>
<EFBFBD>j<18>n<1D>}<05><00> <09>E <0C>B&^<00> <09>r<18>n<1D>~<1D>n$' F, n<1D><00> <09><00><0F><00><05>~<1D>7"<22>n<1D><00>^<00>^<00>^<00>^a^!^<00>
<EFBFBD>3$' p"<22>2U<00>$<24> 
 "#$%&'()*+!,!-#4%5'L)X+Y-Z/[1\3]5^7|9};~=?<00>A<00>C<00>E<00>G<00>I<00>K<00>M<00>M<00>O<00>Q<00>S<00>9<00>="9$=%^&bO&dM&<01><01><01><01><01><02><02><03><03>`<04>L<06><06>S<07>
<EFBFBD>  D W <0C> <0C> v;M<15>Y*Y<04>  
<00><00>  <00>5  <00><00>
<00>\  <00><00>^<00><><00><00><><00>S<>h<00><><00>3<>7<>!<00>><00>!T<00><00>{)n<>STM<00>L[O%$&%<00>#<00>'<00>+<00>/<00>A<00>A<00>e1e6Apu<00>w<00>upwpA<00><03><00><00>"<04>-<04>pp<03>==<04>AA<00><02><00><04><00><04><00><04><00><04><00><04><00><04><00><04><00><04><00><04><00>ef<07><00><07><00><07>
<EFBFBD><00>
<EFBFBD><00>
<EFBFBD> <0B> <0B> <0B> <0B>! -<01> e, e2 e8 e> O~ S~ O<01> S<01> <0C><00> <0A>.<0F><00><02>"<04><01>
<EFBFBD>T<0F>[<0F>b<0F>i<0F>o<0F><01>-<01><14><01><15><01><UpdateBackground>d__10<>c__DisplayClass0_0<OnPropertyChanged>b__11_0<TryParseHexFormat>g__TryParseCore|12_0<.cctor>b__116_0<OnApplyTemplate>b__47_0<>c__DisplayClass67_0<CreateComponentBitmapAsync>b__0<CreateBitmapsAndColorMap>b__0<>c__DisplayClass0_1<OnPropertyChanged>b__11_1<OnApplyTemplate>b__47_1<>8__1<CreateBitmapsAndColorMap>b__1<>u__1StyledPropertyMetadata`1Func`1Nullable`1IEnumerable`1IObservable`1DirectPropertyBase`1Task`1ReadOnlySpan`1Action`1EventHandler`1IEnumerator`1PooledList`1AvaloniaProperty`1AttachedProperty`1StyledProperty`1Item1Component1<CreateComponentBitmapAsync>g__GetColor|1FromUInt32ToInt32<pixelWidth>5__2Func`2ValueTuple`2Action`2Dictionary`2DirectProperty`2Item2Atan2Component2<pixelHeight>5__3Func`3Component3<bgraPixelData>5__4<CreateBitmapsAndColorMap>d__67get_Bgra8888<>9<Module>get_Aget_Bget_Gget_Hget_Rget_Sget_Vget_Xget_Yvalue__RgbaAlphaAvalonia.MediaAvaloniaAvalonia.DatabgraMiddle1PixelDatabgraMiddle2PixelDatabgraMiddle3PixelDatabgraMiddle4PixelDatabgraPixelDataCreateBitmapFromPixelDatabgraMinPixelDatabgraMaxPixelDataAvalonia.MetadataAvalonia.Controls.MetadataHsvaToRgbFromArgbSystem.Private.CoreLib<>cSystem.Collections.GenericInvokeAsyncCreateComponentBitmapAsyncget_UIThreadAddget_IsLoadedRaiseColorChangedOnColorChanged_ignorePropertyChangedOnPropertyChangedget_IsAlphaEnabledget_IsRoundingEnabledset_HandledAvalonia.Collections.Pooledadd_PointerEnteredremove_PointerEnteredInputTarget_PointerEnteredadd_PointerReleasedremove_PointerReleasedInputTarget_PointerReleasedadd_PointerPressedremove_PointerPressedAccentBorder_PointerPressedInputTarget_PointerPressed_isPointerPressedget_IsFocusedeventsConnectedAwaitUnsafeOnCompletedget_IsCompletedadd_PointerExitedremove_PointerExitedInputTarget_PointerExitedOnPointerExitedadd_PointerMovedremove_PointerMovedInputTarget_PointerMoved<AlphaThreshold>k__BackingField<IsAlphaVisible>k__BackingField<AlphaPosition>k__BackingField<OldColor>k__BackingField<NewColor>k__BackingFieldget_AlphaThresholdAppendFindRoundset_BackgroundUpdateBackgroundNavigationMethodSubscribeSliceGetRelativeLuminanceinstanceGetPinnableReferenceIImageBrushSourceBindingModeClearModeOnDetachedFromVisualTreeOnAttachedToVisualTreeLargeStringBuilderCacheInvokeGetLayoutScaleIEnumerableParentStackEnumerableIDisposable_selectionEllipsePanelDisposable_layoutRootDisposableLayoutableGetObservableget_IsAlphaVisibleset_IsAlphaVisibleisAlphaVisibleget_IsVisibleset_IsVisibleToDouble_spectrumRectangle_spectrumOverlayRectangleget_NameToDisplayNameGetDisplayNameIAsyncStateMachineSetStateMachineget_Shapeset_ColorSpectrumShapeshapeINameScopeget_NameScopeget_TypeValueTypePointerTypeAcquireget_CurrentUICultureget_InvariantCultureCaptureAvalonia.BaseRangeBaseGetStringAndReleaseSetAndRaiseSystem.IDisposable.DisposeUpdateEllipse_spectrumEllipse_spectrumOverlayEllipseParseCreateIDataTemplateOnApplyTemplate<>1__stateget_Whiteget_Paletteset_PaletteIColorPaletteFlatHalfColorPaletteFluentColorPaletteAssemblyMetadataAttributeCompilerGeneratedAttributeNullableAttributeAssemblyTitleAttributeAsyncStateMachineAttributeDisableRuntimeMarshallingAttributeTargetFrameworkAttributeInAttributeDependsOnAttributeAssemblyFileVersionAttributeAssemblyInformationalVersionAttributeAssemblyConfigurationAttributeXmlnsDefinitionAttributeInternalsVisibleToAttributeRefSafetyRulesAttributePseudoClassesAttributeCompilationRelaxationsAttributeAssemblyProductAttributeAssemblyCopyrightAttributeContentAttributeTemplatePartAttributeNullableContextAttributeAssemblyCompanyAttributeRuntimeCompatibilityAttributeToByteValueHueget_MinHueminHueSaturationHueget_MaxHuemaxHueget_Valueset_ValueGetOldValueHueValueget_MinValueminValueSaturationValueget_HasValueTryGetValueSetValueUnsetValueSetCurrentValueGetNewValueget_MaxValuemaxValuevalueAvalonia.Reactiveget_IsPerceptiveisPerceptiveP
:       (            (  ) 
)-)1)50=)A
 )0)I
$)-)1)5( ContentTemplate(,]
ae) ))(),))i)) )m )
q   q    0)
 y}}} <12><> yy  
]<12><> 
]<12><>]<12><>
]<12><> <12><> <12><>
a
e <12><> i <12><>  <12><> <12><> <12><><12><> i
i<12><>  <12><>  
m <12><><11><> <12><><11><>]             ii0 9 i9i <11><> <12><> <12><> 0)
, ,
  i

        <12><>9  $)<11><><12><><12><>9
0 
0
0(
0,
0 <12><>9ii
0i
0
0
0m 
0 (,((i((  <12>PART_HexTextBoxqAvalonia.Controls.TextBox, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_TabControltAvalonia.Controls.TabControl, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b4  <11><>i<12><> <12><><12><>  q<11><>i<12><>qq  <12><> <12><>  
 q  <11> <11>  q <11> <11> <11> 
<11> <11>    <1F><11> <11> <11>   <11> <11><12><> <12>! <11><>i   <11><>i<12><>  <12>)]<12>-
]<12>-
<12>)i<12>)i<12><> <12>-
Li
L<02><>PART_AccentDecrement1BorderpAvalonia.Controls.Border, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_AccentDecrement2BorderpAvalonia.Controls.Border, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_AccentIncrement1BorderpAvalonia.Controls.Border, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_AccentIncrement2BorderpAvalonia.Controls.Border, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<12>9)  i <12>A<12>AT<11>I0
T <12><>E@Avalonia.Controls.Primitives.ColorSlider+<UpdateBackground>d__10 <11>Uiii    i i  <11>a i  <11>a i  i  i <12>e<12><><11>i) 
 
 
P 
P
P
Pi
P(( ':dark-selector:light-selector<11>IP<12>y<11>}P <11>i<11>}<12><> <12><> <12><> <11>i <12>y <11><> <11><> <11>}
0
<11>}T <12><> <12>! <12><> <12>u<12><>x=<12><><12><><12><><12><> i
<12>eX<12><>xi 
<12><>
<12><>
<12><>
<12><>]<12><>
]<12><>]<12><>
]<12><><12><>9<12><>
<11>i<12><><11>i=<12><><12><> <12><><11><>
<11><><12><><11><>} <12><>
<11><>4 <11><>|i( <12><> <11><>  <11><>} <12><> <12><> <12><>  x<11><>(((( i<11><>x   <11><>i( x ,xi<11><>( <11><>    <11><> x ( 9  <12><><12><> <11><><11><> <12><> <11><> <12> <11><><12><> <12><>d
dOJAvalonia.Controls.Primitives.ColorSpectrum+<CreateBitmapsAndColorMap>d__67) xxxxxx <11><><11><> <11><><11><><11><><11><>; x( <12>y<12>y<12>y<12>y<12>y<12>y<12><>x- xxxxxx <11><><11><> <11><><11><><11><><11><>;  x( <12>y<12>y<12>y<12>y<12>y<12>y<12><>x i(<12><><12><><12><><12><><12><><12><>  i<11><>x
( ( ,0<12>  
X 
X(
Xi
X
X, <12><>X%<12>e<12><><12> <11><>
X <11>i <11><>((<28><>PART_InputTargetpAvalonia.Controls.Canvas, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_LayoutRootoAvalonia.Controls.Panel, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_SelectionEllipsePaneloAvalonia.Controls.Panel, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_SizingPaneloAvalonia.Controls.Panel, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_SpectrumEllipsexAvalonia.Controls.Shapes.Ellipse, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_SpectrumRectanglezAvalonia.Controls.Shapes.Rectangle, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_SpectrumOverlayEllipsexAvalonia.Controls.Shapes.Ellipse, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b<00><>PART_SpectrumOverlayRectanglezAvalonia.Controls.Shapes.Rectangle, Avalonia.Controls, Version=11.3.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b@:pressed:large-selector:dark-selector:light-selector\ XxX(` X i <11>i(<11>}<12><> <11><><12><><12><>
<11>}d <12><12><> <12>i
<12><11><11>   ii<11> <11><11>i   <12>i  <12><11>  <11> <12>!<12>!  <12>!<12>!<11>
<11>p<12><> <12>-<12>y<12>1<12>-
<12>y <12><><12>y<11><>ix xx4<11><>| x  <11><> xx   xx4<11><> E<11>  <11> <11>  <11>9    <11>9<11>I<11>A<11>E <12>9<12>y<11><>
t    <12>y    t   i <00>? <11><>|<11><>   x
q qi <11><>i<12><> iqi iiH q   (m <12><>TWrapNonExceptionThrows 4https://github.com/avaloniauiAvalonia.Controls@https://github.com/avaloniauiAvalonia.Controls.Collections?https://github.com/avaloniauiAvalonia.Controls.Primitives=.NETCoreApp,Version=v8.0TFrameworkDisplayName.NET 8.0 IsTrimmableTrue Avalonia Team Release2-Copyright 2013-2026 © The AvaloniaUI Project 11.3.11.05011.3.11+872c653b4d17b974dc6d507ead86211cf1f56307 Avalonia"Avalonia.Controls.ColorPicker: RepositoryUrl'https://github.com/AvaloniaUI/Avalonia/<00>k<00>eAvaloniaUI.Xpf.WinApiShim, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a7f4b8b7db0bfb8d74992dc94ecafae031019197ff4263d87ac0a5835fab101c973ccab6fa6e7d90e8f987374f7c6de18dd0b5cd7d6c41e574a8bc66b64836b7c7e707e1aa393d27e33a08f372c1c9965be81658937c85698f4a1c0f73be68a61ffce06d49d1366bf18464c20a29859ccf105fc2d5e35c7ae68919eab668bf8e<00>p<00>jAvaloniaUI.Xpf.WpfAbstractions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a7f4b8b7db0bfb8d74992dc94ecafae031019197ff4263d87ac0a5835fab101c973ccab6fa6e7d90e8f987374f7c6de18dd0b5cd7d6c41e574a8bc66b64836b7c7e707e1aa393d27e33a08f372c1c9965be81658937c85698f4a1c0f73be68a61ffce06d49d1366bf18464c20a29859ccf105fc2d5e35c7ae68919eab668bf8eE@System.Windows.Forms, PublicKey=00000000000000000400000000000000PKSystem.Windows.Forms.Primitives, PublicKey=00000000000000000400000000000000QLPresentationFramework-SystemData, PublicKey=00000000000000000400000000000000<00>l<00>fPresentationFramework.Aero, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9<7System.Xaml, PublicKey=00000000000000000400000000000000<00>g<00>aPresentationFramework, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9TOPresentationFramework-SystemDrawing, PublicKey=00000000000000000400000000000000QLPresentationFramework-SystemCore, PublicKey=00000000000000000400000000000000<00>i<00>cWindowsFormsIntegration, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9<00>p<00>jPresentationFramework.AeroLite, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9<00>m<00>gPresentationFramework.Aero2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9<00>d<00>^UIAutomationClient, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9<00>l<00>fPresentationFramework.Luna, PublicKey=00240000048
FileVersion11.3.11.0d"InternalNameAvalonia.Controls.ColorPicker.dll~-LegalCopyrightCopyright 2013-2026 <00> The AvaloniaUI Projectl"OriginalFilenameAvalonia.Controls.ColorPicker.dll2 ProductNameAvalonia<00>1ProductVersion11.3.11+872c653b4d17b974dc6d507ead86211cf1f56307<
Assembly Version11.3.11.0<00> <00><namedestPtrdn