From 1160a1349ea09c3da700ed743b62947450d82a03 Mon Sep 17 00:00:00 2001 From: vasavi-s-SF4854 Date: Wed, 15 Jul 2026 13:29:12 +0530 Subject: [PATCH] updated csproj and readme files --- GettingStarted.png | Bin 0 -> 27946 bytes .../GettingStarted_Sample.csproj | 4 +- README.md | 156 ++++++++++++++---- 3 files changed, 130 insertions(+), 30 deletions(-) create mode 100644 GettingStarted.png diff --git a/GettingStarted.png b/GettingStarted.png new file mode 100644 index 0000000000000000000000000000000000000000..74512c00184e125ff49dc39f0037050d18de2525 GIT binary patch literal 27946 zcmeIb2~?B!wl|E2Q)#P6du)r$wW3%NQ2_xNQfn0>0xBXh*D}ixWS){}ty-&sfPlf~Tgn$f@DFFfm$n@<$dd@xXx$phn`>pT2?_KX&W-V#P=lMVTzlY!6 z`?sIoI&Eqs`MK=pVq#*F*b_gU6%&&nh>3}FKivrL)S0nwz<)OQoi+MVte{Xum5_n$UjQSus&x+d^ViCN?#y0=0M{SBJWtU5{qyg>Jw4Fb>5%!L+`TK^Bxac>(PYp>S2l5fMQG-% z29M1@Orr$QF)w#e0~p+CQh`V7as*yN92R=|-hm!*>~YS9#?#XqYC0tc35v6UzM8aO z#D=Mko=fnJ^@sD9gbnYXeXhd)%ll_vnXaHqg~#sXxlQk%oz@wVhG#k>cPDx91D!LU zk>TYJXCgF*6(<+q>CV5Q16}z=-o4(Sa~z(Y+_`?dV_#g}AokFcg6q3?o8k~XxwKVk zwQ_~Ob9K#&XkL5rfPGM?F=@WSAy?6`UR${A5kj9->#1w3e=w`S+j3qCElJ+&_*T3G z;rW5Y@eRQpMT3O3r!rTf^vM^GrVGJS zg)i<cF5`37=QumqFcSeSb9>kf(W@%iddv_!|INV-I@cQP$D;w_|MbMoqj&I!_ zgV20D%PQEd`J$z`@KKy-m(&oEy&XfrT}TtnO^P%`BVE+-Leh$KPpSq_~Q=DY%RHi_)v4_8Mj4@P&u}d1i!Nq{eyi&oD@k99PrDSqXcWrk~xCoPCv&U(#W$%w>wPz#!>0z7=jjS6Kog=EnX*?^_Q zJ7L8GxixNfeZ3wOBll&C~r1H)zh&sD1$H-d0UR384C*7PYkp3oCX_V~(ZMv)aVzMrxk z&*fdmh&;!G^lAyekb;;B*LrgeX9Go|w5yctwZNOc<$A&TS3b5Me+&eZ(ZQlF1u;5eJ9K@_ffvistL zYIz2$i%Nt)|0auBi;{ANEw*HFr3%)#t6i8?v)BN%eT@aAT}X_ZL+Je=iAdt&Y2kc9 z*t*8m%)M3WR}n_OFro@8aC|Qzi!E|ZwJzDtSYhYhs7Z+;sLQ+>RcaqewLHEm?=2*g zPp{JLMXtnDuAu!knc>=7yYj%=+O$OpzZP??w~}Q}e6X1EOXxG2!aE-_@=*5u$t0QK z@twlI)YRB>6B*6ZrZ^co#e`}XArId| z+h>seL{uGVm%>w8!y0lErZs8_Z=XK$f2eA>@~9banv>tAWV^&JnO|i}DD8Y6UL=BMN5; zUKkuzd=>Uy1qwaYDUCZo6Nnq^4Kch|8ms*=xkg;hZPy%2rjF*^V!OB*k3SvQTE`~y z`g;0@iqyH7#h6nm1NRmcWcV{vuD&CkeyV4J+wU|C5*boCmPG6~DFX-JF;Y^(iUV5W zJn6+dC-r9Me<;)y+&LmLjqaiZdmZw`Z)fnU$&`S!wYno&zbLjpe=Q&}Ld=#Hw@2m< zj1bg~7S^vR;2HBY-oZTUkdwC`=V8&Mp6S+94V8d^7>T<}dV_4(rz@8GI;4lSjrpGh zhiGbQPK>Q`jF!6Iytz=j_8Ajip`v1k%}}5_i}+5ZPVrG9>G3&f^+e3O#d@^tLVM41 z$Jc6W?l)qRrr~sLAZIFB(RTI2|G8UjTMe* zq_xo*BKsl1a>bUa_URu4S6BXS*2?{~o>+_^Mx^Nm4kFFe)slHd>!zYy{`F1LzucCc`?oOFur2Gl49$S zAlLMqraQ>aAQI9+m>v3s@oVy1n9~&k6XdqAjE)XVh`}g0&NJ`#ar7G!Y#>I{KrL9uxjxz{?c`ka|W8PSQ z<|bpZD`}xSQ8FQDp(#P*aglFI@22?FBoRM>V(|-OJy=C+lXu=WO*OBKm@akiQZ-7l z|6s}Ar08e)Dhxboh^S8=7~ofk=HE`<<|)yTN4EvG7dH`-NsR!D6( zbHA);K2li7rzVMvGpS~+f5tG!(85G4M@vif^Orx^@8-w1o=HgXK`7487NiUVU+=_7 z2*Y_1?61SpapW|E%Fz0EG&Tz7gypd!-A%Z%1EBD=Z--RZQG|yn#<6}|lksQ}K&j`( z2L|5JaGEXR`w#EH{}8TBqeXd3h^;K?P3<5Ua{z?AURMw9)t20>KM?x(1{uYZAz_-( zTn)VD^IH=qzWb}#P1owr#Z+!=HRKZjsmOlyQ=#yk(Z-a9N+&^9e}SPqA*_*9Gwv0C zUVRI!`_)zzF@k}o!-j|9g|E#Gkn?SfANlp@(#>z`)Fhr4UDl-0rvf%yiKl)>tXGFm zPw(2WVOX0|zD=xo`+HQlfA74sSo62*FUSWRBjz;!6yv-6P8RdwZ(Rp|jNc#q%6_o{ zBPQ?QnY3YeW!L&w)vHJTWc$d=Y!(ySfABqmbUD7&)u^QP2cs%|WJ6Kw2vff7s?k`) zSC@~>Uny{+bq^S|cliT~MPORWR0f7u>z#l^G5NU2#Rw&9X;ITX9 zU%)iH_t0nkTHx6aBj}juapmRRNzQ)Da;B2ANvo1g z;^o}*>o_KDA*JAVl#W|t@w}AS1&R}2|8k`6m2Oz?*Zn=Ux2qpZ7;eLD=VE| zEMcRGwqXIwOROCGzg~Gfw|re2p?LYQm+C%yH%k-bWMy-1MpP~@FHb%CX$Al4e{vlU z_ujpGm%OY5%iMhzUCs|@WMyRuvlw{ev@E*R;Rk*>uEQ6$vCdJ*Skonb^Taud*j%S> zkH+&t>cztOu-?`djcQ?XcSKs;kT|`c6l9{<=YQ0hlwH1)*}7JnM+*t+W!0!+&uTyV z9*19IN(`PXE*tI8FCCv~=1;piB-}_0k&ZJtYpjBLKf9PXLa$Rkz?P2DW=BebM z*B);&2jY?sjMm0dqwNgz7V0-Kf6lm1cuMWOO0m6K{%sBvw&8pkDovK%^^Y?&KR&Y z(YHO1VNAJ-kELivk9lPcJ{Xwq+9P7Ywb)H#5*BCU6EB(NhwnR6oA&JC>Okw0Fq3fx zcH?YayTN2#!r>xauII|*=DriWOd-WJ)6DvTa>yf&w2>e|O6<(n##wL60w-kz}ZqPYrG+Ga;>YK_|v@f7<7 zE1X+thSqwbu0F;Ov@b^4&cLgmTB6Ee%uS-@D9~*rYQ3vLbluce#l^(ArINzDR&H+6 zoBIg?SxN^3+w-I{tAm2jk`@G#Y3;ocX%-WV{oDa%nZ;*F$k^!XcUycq^|$(i>s4X0ODEE-&bb4G}Yym)3Mh(x!-7w?`eq!mhVaD)6-n z3CD?xc74zGnqQh2EAnz^$>~uocIQT-qq^sK$vpKoFAvl|{7xfk5$`65xL)Bj)J;sd z>?mCIyI(h(1XmuGEn}0$HsszKteB@nG`Sjz`IO!mD3q+g<-nD!N=myNrgtJwI`iR>+$ppFrVnC<)G8!;vnTcN*sTAOyzH$QCqmuz{?7TX(tvzZrm$SUCooKQSGzI&w@hS) ziA6E0jNXtOFN*=LSL?4gZpSF!P8v#y5ah=;c9I9dY{Xd`AoX^BMvZARk4q2am-2(B z^Ct%xaUkjbQl3$Qo#?GZTMCc1@Fp%v6_;KS$oG5`|4Eja^?k`%uBH7}L$LW%X{GzY z$o90Pt8WaN!6|4W#Z1q2HB#(bd~4-+m|J0Czexp)Z_D#^Ba;`N4OFGJb>C{kM#}`; z?&_dhTM5Apxq>1$%ke-pn_#z98FPgB5Z&s{&u_T}aeMVU*T((*rG_Yrv?^xQ)T2Cl zh$YKf)YMEGDe|hwfK%Di=NgW*l(A_#?--MMRc;`5J*@un5SKtd3-9ce`qd`Q&XbbCC09bXStqf(oiL7b=CBbSYQfkXEd^sRBzd>Lb`8 zPTI@&r&Xx7z=^5bC5j}=9LyMmimI!p5>xQC%+gTpZTwl{Bb)Oc( zrt<>ZB5ElXLb}MseR<5UbN}U`?YL8ixuQK~qYiwrr-9+-@Z!>&a7#)Acu{S)&9H;6 zPpB~h+;0*j`PP((ACha-zV%{WK8qhla9z%IPA z6FZvzNq_HZ{llWG_V4(|CbVrIRDEU=tG;KMxNUwWLeCtu@0&yWjMqpn=shJnk^(Ww z@Hz7M;6IW>5LK2oF>P;8x*u|fuwJpTO>IMwZkkKCx z=R}isY@hOQaSmx|wk>~G=sVv;wTO87PAXqeu?p6I&b0bXq3GP_N4*ABBGMB3ms~A- z?G7_@rj9{m?i)x6%BZe*ydYZ)Q8mky?EmKACb{_aV<86(enJUXTXwJl&mKrVEa+^O zdw1JRFw^1A?%yrN zg=QaLYn2cqbR}l(#n#n_gyhWH#1=&jVO)L_cI>}wA1cM7e9}fezZ@p5Ne*63yW>kH zp+&DvQCxe+s1vuONmjS&&C2pm2C-97lnR;7#iXr$RZKv@6vluB#!%LZ+xrCqLud$^;E3Be1L zfO*v+M;4;_GEsbdA;`Y!45TvWZF$#_kE;-mW;XMhO=i_SqGYl!#E_VoJiF+~GH_ z+}1C6WrQAHCQ;ELRl|O1C=Vxk@sMk^qn6nEso-%)b4bFWNvP$N?Lyd#pW_kmjY*g> z#I_dj-w~I{Ll_5ytXhL{%iKVh#-V^pKp&@M84tn^@zboTIbrTO9!-C`JBU2TLIl3i=55UXm z=9nMS?gpOrQG--OD8p!cdLl5kY_BnbdW}0m1v(a|b<%^@mq^_f8 zEwvPfv_*wuWsd|x1VTHxkLt_YRa6;UL`~}C`z-M=->K3H3-4-C)hhwj$Jgr1E0zTi zsaNNFZOkj!;}VdGX7pSs#kLo`q0FBl)S7Y}~eF_RS0a5`;O>^bfw zSo_5N2JP{vUUeo!Q42Gbx*DRq+Y@02_#=#?xyIt8Dc}X%(Trk zF%ecx?)A4CU;K1QtK?v{aOR@fr2bqvV4!r;M4I}QA$@0Ts8mhx7U42pPQoBUIXh`C z=ZI14DS1r5oAB8c_gK!VxY%5hhTp>E(`rq6tpb89-)s4ug@83)Hj$vg zNLx%HsNxG%avd~wHIarOA#-{#y?0ADQLHwXQcedq8MJrF!*lmm0O{$R|lgYWA z_@5~U=x3mya9G@dlM>c>v+J~mx>?PfXeYjKv^_B-#JL{@l7_q4*~zBUgE5A-A!=1m zFIz!m-aox&`YMFFX0|0Xf0g6qU>1$=KNg@?RBHhyt62C-#UZ{RRROT$h$o$MB2>!X zvOs2#I6D%->Q!!HvD6Z*fbY|+}2qX*5n^Mdm0ktV-+a+nZ)Mx{YL}@ET+|mW> zudi6%0N|Vx&U!;^ZiE9M>qFrSkYsbh&YTo2&cb#sQQ%s>t$AeG1m&}N3GrFpKbj|A zvN`Cn;86kya4IQVXAq$LT+;p$)?#xRBGX!;lgQeDrV?aGHs`suYhrMxP2;i4DT z`YkhIQycE)VX2;PrEWh=r>teO*+zt~a;z_GN=J zN}I}_q^xyha%-Sv+O)7b;v1hu0xNo$O-^EPFnuYPAM8FgVck|gp7 zMBPq8Eg(9G8|!x(8f|e>=MgCu<1Bujj@A%1~rGc^UoPHgf`MOGYg8;VRT% z-aq6;|5j#NZ{ec1udkQz(6j$k6BxetKd)PTJm5ze{>R*bk81PL^pJgg^fpKeV*f8J z8~F62gIyQWm6so53KGP}xV)|o|BjCa?|!tDb;hJsuFunoP}wWWcek3EM$Zg#!{!p#33aAg3HQ8Ezeoenl$0#$b{G6dImv8^q-LI>^p(oBes*K-E!kwBv=Ex|G|~C3ZUfe=HzW zO-=p*<$vFXJKPNDRr+%SouDB!4#mrzSSb0R_y1l*f##V0{7dZ;cWzzmlC-uOg@0qy zOUj`F+mhfz~p_CO;6I%7lGjbDZHu*J3be;>lG|qMzW`wTU%cW>cbBn#1 z^lQR~n_+5N-G_ky5Q~~y6TBr6UL8uqP<6{mg$}$C2U@!3P;5gSk(bUSvy%9`q>c%VIX_;Ez>t8BtAq~+(yqN|)U08;M2=^e&3$=8)RN`TYEz4u2 znL$~P!#n~5aP1EcH053*s)|a-$z$`PqajmfAVyHr{b27A-99*E9tWRIgPiJ52ptkYp z>pfw{Vt;F5c*8@U9fr?^sgA2LQc;E z%N<4PoadPoXFDDp+i-3|s)8OmdxtyDq>)mUyh#U8uL!lB7M>j+*rhnT{ME@tn=VE| zkz<4FD2v#fDxl?L#nkalSeQ4l6W=q(nd;#Nk)?#4(8kK)o0x9X)-|56O#li6V!FW2 z>+3BS$jz5^`%FVE^l@|f+sSg=_^O@M*jP4`*{=|UIw4jS9Nx7Fy{d|d^d{Hwv~qs@ z3>-Zs%l@8Kj6)J|63)e;)_#xK*AZcyOri06ewEI77c)bZ(T3i05nn+6q`)6aa_LQl z#?k)J$~bD{T_FFcx@^=Hh(nph!td|KJ9#udj(u!BP<7riVwVljF3Lu;#$U8)rvs@W zdMvx#0?UZcFAp$`%A%3%D)W`0(Z=$h0X{I5xY!TOgKVgT%LEiQnR``aK>-+!<7(V! z#>uJb+SAf~C&ku^3CD0}R2 zb^4`0fmecsR!A|_K-1L^qk49U9xKmY6AR4^)ZW*5ceI%Rja?4#Jv!;M18y~c@7`Z{ z-@T7VET8BjMb3>w%sp8@cs9r;KK1%~=o#8LqFt_&9 zHGSz>abqAt(K{(vlV+|Hb$3x)7d3v8Q7IpoBMalVQNt&8_aNH`uFyJbptY*21e`)o z9hTvq?tut14lA@HqqP!M5(2poL_ztZ6mRklXgjx~KDyro4|SuDD4pI172t6-RlklJ zvkagh5o(rtoqq5S4ycp!>;IG73||iE;$yJ%-=wb{BR;zTb#2tCW?u+4My-VLzzrvT zo_X0tLl38{SOE{c@I4!LBhrrXzqH1oN11*Q6Ac6xiL`F9PP?~X+!Id z#j9^TJm`@fl?)AlMa3D#WjDt4t|8yo(v#5e&mg&+kE_UQb-pd!Bb^pbf9UnM`#-JE zOTvzmhc4hT*m96n|9n$Kn5w$^ZB zT^5JVG>lTV0_s|`?a{WHW-knVc{aH-xM{mm!C&tGobE+O%{#>S0V)-kU}|fg9{!EA z9qO`z`7|Lmk{^35S!4QIY-JSibqWSqcsbEtpgI7j3MP5B`TVwptKBaOssR21>Ib+$ zSUSQHzdKRZeIhX{S$k$FBnkQ&_|BIQ*+klIeAKj49Nm%cV2VU3m{FBb6VLc!eH!94RI!@`LHT9BBERdVdMf93PBjQhlFwCu`4V-~X{XNb5|JH&Wl6D*3 zeRmnR0BdvR4V3`}<=yn31fvD(9BU}w<#@~&ka07z5+qCq= zM-^C~n)h{d!rdFyrp{%;X}X2O?P5`)A8dz=cHrBGmC8VpsR(`YXKt3-)DRqsh_!ut~7f2G!LS=Y$4x{u!vTbw|!T1}-zIUEl@uOt1C_^Fz>5K8Z{ey3lAZ zus}wt=sc}a==;|;)V_hutT~E9+|yLK2sAX z+jKuscgH?U2Mtwqe?u*|Jb+aD+(_jMD@Zwkm+Cnk?)%2~^dJAq9mXp~yl3Ew?d}9B zn%{DsYH@CuAIqL-x8(l{B7$zlya`ee#3t=sby6Jg_3Px0j012}&C;9&t|o*E*Dlu0 z7?PBd1AsV0I|B~}4X8x@r;|6fz$`l4wJo+T zH3}@0}Z1{Wi;GIMK zzck*2k4OK}%R(IM_YnVMd2C${ACvxdF?>w=*TwL$BKV(j4$uC@)1Q~x@cc8!_bvab zsf+(#s}Ae)GjQS`CgtZhi9J6+CD!ABy5D0icDfX*6o=nR|GX_?<@(m!I|z^VGAXsk z0ox7tO-qpx$>njrLq1AW)!d%xxKgTqT=`_%jk!%K-;78%zx{{XQxRJa<8Y4uQbqrd zOFjO_Ac7;pIp9PV%3FbC+XAE|huRC#2tHz=y3pcxax@81IzI3`fYn+TI}VZdP?w5Y zGfZNj+z8ks-vgkFR{p@p$O7yOlp7S$P|C4q8i992pvUA1E;!HlOd|@BOK(alP)a(1 zTqL2**gwS+f4CQttoHtrg4a-3stgkZK<%Y4_}`Z^K0SReNUcf>aV({@84n=avNRKK zOh7T^cL$h9MWo}(m9c4Glq_qjicsm>F)Xd~i9Pg0OYN`8M#GC@+EuVj#Y!bcK zJ2dFWEnRilBt_ePtfj|Fu7C&EgQvvpOH)ezkc#C__Y`1I4j2HbnrekHtHjgk?>Q96@|*G;d>? zVyj1jeI#nRB|y^Y{y;|^d(hj{1YpP>KS2d1Y(W>jhtRwqwzE=XnXSM;m>cLnUe|g} z4!%8%MW`ik248THN^G92qbs2^%6p*EsKyL5GH@z69#OUpwDJJOPjpYlX9B`NgE8|> z1!Ne-ggLTnFpc#5@+6Fkv;l!fD(u|c5164)4_E}+&h_CSm{7=(Mu_3c*68(bX9H!a zd^V&wH25b_Ltn}bOf%ZASuJv!L#ZHAxd~L{oI1K$gqX@#Xh%ldfpmn1kAO%lt2qSx z-CLtsTV!*A3IyzOO}9KocGo@=U_gC9yxn(_^xa6_FLP17<%pv=NEjpp40MYG56}h# z|A1$H)9#-(eYE{f)hifN%2#Y(TMmOkqL+KY2vFvhbM_q76Jn^GFWm1P8S1|-dSEMMQ(zikLq$=^lCjR&#H^(rqO*Io)>9OEV~xyTrhww zGjar?Svvbu`ull2v18V6d@i@A1{_0$H~MrT6zqauC0T1|$M1b+h+Rn0vdm;YADTLL z<=2{jttQIqv_tVv_8;};`~Q6$lm>bI;JKfdz6IHC`ny9{{5OaGU3HZKz@+bA-%oYI)BpXH1n<^aitXj6p-&nAG~~v<%0fvbD8_bdC#W$> z+a$F(>ptT>!!Ti8&7r|y72u)1_V>Cong)x_954s2u<+gzuLo$(NlfA{D0sD^3f~=6 zJVu;-XHS&X;-2jX`ua{RnjM0Vfx%v$K1Bk5fCeleKca1{c12*APKti756A>5DWH&TtctwCu!!Uq)YL;8|Ny z^%=yKvUqF+h{fyFeK-p$oI;)&jRsJ9@pXe9<{IUOXxa`D!hx#$2Wed;#D4hlh9nue zL}nG5JIYaR`uj}Lg#m~w5VtG;W`u^RPCrz50vYr~x9Bz++#F}1Im<3DM!|2xWqRzx z%B6>T%F|)u1+w)gcV<~biAL7sWT;IXX(<5QF#hQfsxbhMbhM#nB^VKhgYrdA<8E&o z%jt38DMO%47em@_3*iBckwN)W1v?&s=9l3i&xS=F&6d&LNw2NWz1antG?C4e45{~y zuF0GfAs%n+YdzxBu}OnIyH&2w2gH&JO^bp%1~B+_)KtPQA1JAs&=!C|cFxQKD!0i7 zJckp}tp!B8fog5VzomZ2Fi-BEnxg@~8&UYpy%;%n5VQ1O>WW9E7n5K%;@Wqf>r~HY z7&PaHzJm&lKv&;l%>*`bviwL?1=3{rgoAjqkHe-PdaP{mM`M&QuGs8Fjli9ZMl^WT zVGG(@li_>PtA<#hG0T*~P&ax!pMUpsgbP!z2=c)=O}x~t3IPPbahMWF z=l&dIni4qquoA*}DLaht=0Y?oeVY+hGnA3OmIfFkxyP77{WTNS7DECXQ?7l-iE@L1 zLQs`xXi>#_{Ecc7eBiHUA7%o!XWd>OcbJy^Fz#@q<^4LuUoD%7L35~6zd_R-DMiMW)76x0{{_KDj zTn*IVv5YTE#g`mxf`+qGTmig-ot-yTGMLMHT&)F@ux;R+6#ezY5goi)fSj6)#!wR2 z2pWn+MMs!d3ri!DLd%q)+rT)9s<&&XDug-~mCH&W01CwPL74;m2q@nm!n5y~m&l9^ zLT~OX#b&|Gmb%m*^%_&(WI>T>oFNYC?|}v*kcO4G2$N7)-}x!|9CVU2VN!k~zfc$s zw^eG>R>tm%@Hi2DG}TC?b%j=S9(8HXM;uJGBbvh0&w{aGkLG(xJa2LT;OoBt{CZpz z|DW`x!Si{yp_`jwJb7f~KL~zpum2I+Kiq8qo$_PNXI=0gYd-5@_%BU`Kk{~wjQ{(1 zyZ>6E`R5yX{EtY@tU?&Dw5ZzfVrBPd+lG=RL=MGmB6gX>H{SqG-NhqF_u ztQC8pyWW zk{jM;LYf%JqTO>~ty&?zPWI)_UlGuO8-ld^>9Mm@3)~@Vw21a z5D<_KOyE9X{-j>1T7He&uDQba?9OxoRQ(f2Tg3n^oS22cV-v}#^o zRkJu{6!W&PKH{3mz9Q_@y?du`e_~crD-+}K{+y|^d!ml~*rH^Tp>Xfr z-b6c#JnL-rvy)0Q-`+i&y;qOe`b)Nj)-jnkV$Qoxe=b-4)um6B+vE=D+}i4>XDYuO z+2Z$Mz9UvR}$OL#8l_jZfvMoL^@@CGS(aTb4Ifqro$($gIHG*~_h5 zjw>s~QfsEqda&Btr0Ho%-w+M*O;UQa$|hLoo9r#*^Fb#0m3j%ERv5QeA1IXM>(t_> zi;4ao1yd`{_Zf*bB(72ytzsXA#rK||R4P+#gDsZ^()2}fHI<^K#pV2#;YSP?3ua1B zK<;7DL6Z_|&Wa6pY;u;7SA7V(&tWd(j=anX9HXj+#CGjrz%2n+M&I8%CwbQE~#t7U5kPSz62{rm%YRoyGCmBB6e*ASr-qJGh*EM***{UL)`cXdCKKvpU1$ z7g0TH4~H2sUdIXKV$wrrzb=Exc${5D{ z?9@P9gY`G1wsDpciY;>^SK&0y)HmvWM_Mv^bWKVo&Qog+ze##=lvYwYI{`k37~UQ- zqa9R(5qt~PsC}VT08q-e7{c`?iICq$OHe5v!r-6zwiL6SMektv zZt3T^io&+$O{9CSK?H5_9rzwy1G?OTujp}qG12k7x^-HJ$?f9H)A*j1Zby%Jf~rJg zpv4RArq3dszw6!SA@V=O746pBVn}?+*%eujl0)W>qLQ8Nno z9jfXpKZ3-ayv>bnG%R=5HZ*lT(Ar6g~8(597=w@@tWYX8GQ%rL^# z`4#)t`TC(Z0k}k0>Qsb@-F(=0+Wz#UQz5(9{uO(9_T`d><_6V4IdElWU>KY(HHWgd z(mIbb3swX~HlICN_q^Uw1_?3f1~H|ALDR=?Gb~p9hM!f>WLtSPg{7iIo`)o7pVP>fPoLNP9S=DlvF)2#?X5iTM3Z;UG4W|-i3B-j4 zx~{Lk|JwIHy}ZGlQWhiJYoy^%lzM-SYspdHVpudQl-DWsTl+rwlis}{&(E*V;AOSw z)fHxzWouXl45psSdpPT6m2l0mIy22WTPui}xQTr-x>U2*mvfBk$`{mGEZUu!ZdzC_ z>#3yf<5NOhSEv?wcC~K!OKtR?m6yF1GTTB75?21!%hzqmowfuWE_%#%ZhXPi2oL`D z+RbuiP6Vy1^MWyGQ;J{VYtXJ}W!e^fJG+=$WMdCU*CAOxbKR`gA>S9SoE*A`5!5?4 zyLkqc{rDuK2r8Df?{a%qgdO=kY})0yRd7wWrq;m1rtHJI3fL-GL%;c;g{-ud+!>t} z+cNwjSidJrbY_6L*Tjr_!`8Z5OP#e^y|v&V+&)V<=ee|5?76#ZuIsu+<+@%eNytyV z=u#d!!F_R_QvY7Ia3xAoD3+tgKi^R6JqZfl{9j<0LET8fLJaU;^yktf?EDQY6XapRA?elKl!#Wg;}o>~ zG2oC6`Y~$MSUme&qkm9zV(G9-bvek?LwYD>)h|v3J0v3vAdp6BJ!Ptw46J&ElbTwk zE}r4LlX%4Y3KD6U43CSQ%zYudOI+J@C*|GU^TwM$aWKtajp+%8y{N3J3!FbE3Ku9n{_TD76+Ftx`@;0~0aD>`Yh|DmM*3n(Z&0<^`lZidSFh{EWey zq?+N0Dwr0tbnqHlDzwCJvM!!CKOQmDQaH5AGZ$`7aUV*VDG_)UyEKWv51?XmH;eM{ zCUix&~S5MLZ}jbi^yk#6p=qiZzHi5T2LKG!^SeY2k*hxL+}hr zG5o%2!Y=3}wP1?hqSIq?f zZ?{RQ*Xij%>9hp$l-gX3m3DkgI>;@gQq(bJpKynydwsP}zdDY7RK17p5rYCuMwv}X z*t=IK3}@P5UOzwK;QKlEh_Rzu?qPOo-^vSpVXwhzmKQOFepFN;n-*#h&Uf;ru6Pxb zct~Q)>}#~RMn)Als{G2p5qeWSuR4d*UZcmi4(0WZmt9qIwc;gqCsxPE3^CMr+P!UA zjvU9ZK&jgM%9Xw^;x!11r&H;xbaejLQMHvhqpCe=(@uVYnIYO;uDpKKZ-mG2o$8#? zZETy~m4ql4w z%N4Jc(JwVHrg^8%|HlCw8~t?|#r54>DhlDsJ?sl-rW59^S9Two4So7~K@5jAc%!_^ zFObarg-%KM-7o8)l7y63Aupt}cv-98VDW5Ov)|9@h1OOf#k_B~a;INM;a6899COuf zN=cpLvd&TW)#x3)$vuT>m6;nWCpT@vVQgzLw2f(4o35fBvUCN0kE0Qz1>R0RRXB}eVx zN~GiH(EyC=+n};T0TWAjOp@XKRv#s0EH61@Qb}k*U-56DQ8Po9`JQs&E^A*9#r))? zoo3#JVWRAt6DH_QhBV6Y z55Cg1d+L}&%k$UMJyV5S6KucaA5m={9xccUJBplir!Myo{!|LN@VkMr-fDnM2pgo? zFWjy2dg$8OyO6PuVPHarfqnWqmX5+oa!t&5rb35IBeI8$vlA4Bb5MG-q z%Mw;v%X(Cn271^tc##3r`I{XeTL2uzVek5+KeuOaOG*y~oVVGlj&rc7*vUP`W~W>G z1%Z6|R~^26T_4vKW>gXW^R|h{AILvCjs=x-1<3z(6-Z=B^`OWVC?D> z#6sWMm(?XTc&~#+f`zfZE*d#up4&K;8h#X^z5{e@^%d)8rj(y7bYsvX`AgVMmow93 zih7`kGI=xrd{unrjoum(rTK?G@czpY-dJh~)l8`wdzCBE zS@8hJB%V?>Y1>mky)u~4-8+ngUKT8gTC#bWmYS(3tgu_5rJlK#X1B=DI7HZw3FDA2 z%<{s%dq3IXb9}FxRTPA6Zf zmxMvETUes(L~jbCGx*5zT~b1;&+J%0-wSp)8p6Zb{YJid{B4eRR`zMqr$&3Zt?6P+8q zn(704l68?>0UWyci6ULX8$zQ?Q^L+{iI_EY2_~wj;T!-1nuG*AtY9TW4st$VC;=j; z-aa8k)78v*2>%9r<%z%h%03Y1rP~8dqUf=4q0zK3ieTUMr@TB(YrNTUNP(aRVcQHK z7C6aU%%4b6%Kd@Elgdp~$EIU$iFFM0B~)w_g*148<8qpNvuxXQISgz7;GUU2Zy{qH zVjLv4FYGZbv@bP8J}crHg%Ye5egQdMz|^7TEZ9eP59?$Fi3l$|DYRql(!O#4iL1Y= zySRB$zHe)E%r(Fj5~v8c-tbFYn7%5C0VV0ztJ(>n_ZK)D!T>QG(b0gk7p{8K#GK2xMTJ04b;4wPEL0vmIDO&4j-8L=D&Xo+Bfal9{6wWJ%$A!7(OovnVUP zo4G%P7juI;e~tSZcG_H^KUq9LYy}Uka;HtB?H}%islS}0H9m?)U7?qAKsD3*elQG>`_!$SE~X2$gz{-HNdb+gpxT z^J4C6|Bw>dr9XqH=igRs2zK}ZcvV|R>35awpY)5@zYqRXUR#7Nm$~qX!zr7tx5$Y4 zR!$EMikt#45CNS)DDJ6vLbMa43zxzsTK6kegT1m=)AGx4iU8#xku~9v$=pIBLuvr2N!MDjq#F!qv2T<7?&pu1XubP+!jT z8-CM1nWc>F-6uFtpX$THUBMHNj$VUQ`}QUNPizKw#(@k*GuX@M#4@N_$#Sg*<&$8dSI%A*lKILYDNhf9%{#_3#T>vV_%Oo072&@AE_ONdJxf z^N*EQ6cYXySxWMM_CCV@*|g{50g=={wh)jM;P%rW)dtDoV}B7z;otu+fZ)B4ma;CI pkCw77hL4u=UJU=YcH%`!SId7oe_}i+8(jzXnCVXiKmPpd{{y`;cbotK literal 0 HcmV?d00001 diff --git a/GettingStarted_Sample/GettingStarted_Sample.csproj b/GettingStarted_Sample/GettingStarted_Sample.csproj index 102037b..2c08f0e 100644 --- a/GettingStarted_Sample/GettingStarted_Sample.csproj +++ b/GettingStarted_Sample/GettingStarted_Sample.csproj @@ -11,7 +11,7 @@ GettingStarted_Sample en-US UAP - 10.0.16299.0 + 10.0.26100.0 10.0.16299.0 14 512 @@ -154,7 +154,7 @@ - 6.2.7 + 6.2.14 * diff --git a/README.md b/README.md index c5caa81..f87a82a 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,142 @@ -# SfTreeMap Getting Started UWP +# Getting Started with UWP TreeMap (SfTreeMap) -This repository contains sample to getting started with the [Syncfusion UWP TreeMap](https://help.syncfusion.com/uwp/treemap/getting-started) control. +This sample demonstrates how to create a UWP TreeMap using the Syncfusion `SfTreeMap` control. -## Syncfusion controls +## Prerequisites -This project used the following Syncfusion control(s): -* [SfTreeMap](https://www.syncfusion.com/uwp-ui-controls/treemap) +- Visual Studio 2022 or later +- Windows 10 SDK (10.0.16299.0 or later) +- [Syncfusion.SfTreeMap.UWP](https://www.nuget.org/packages/Syncfusion.SfTreeMap.UWP) NuGet package (latest) -## Requirements to run the sample +## Adding Assembly Reference -* [Visual Studio](https://visualstudio.microsoft.com/downloads/) -* Windows 10 SDK +### Option 1: Via NuGet Package Manager -Refer to the following link for more details - [System Requirements](https://help.syncfusion.com/uwp/system-requirements) +1. Right-click on the project in **Solution Explorer** and select **Manage NuGet Packages**. +2. Search for `Syncfusion.SfTreeMap.UWP` and install it. -## How to run the sample +### Option 2: Via Extension Reference -1. Clone the sample and open it in Visual Studio. +1. Open the **Add Reference** window from your project. +2. Choose **Windows > Extensions > Syncfusion Controls for UWP XAML**. - *Note: If you download the sample using the "Download ZIP" option, right-click it, select Properties, and then select Unblock.* - -2. Register your license key in the App.cs file as demonstrated in the following code. +## Adding Namespace - public App() - { - //Register Syncfusion license - Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR LICENSE KEY"); +After adding the reference, include the following namespace in your `MainPage.xaml`: - this.InitializeComponent(); - this.Suspending += OnSuspending; - } - - Refer to this [link](https://help.syncfusion.com/uwp/licensing/overview) for more details. - -3. Clean and build the application. +```xml +xmlns:syncfusion="using:Syncfusion.UI.Xaml.TreeMap" +``` -4. Run the application. +## Creating the Data Model for TreeMap -## License +Create a `PopulationDetail` model class (`Model/PopulationDetail.cs`) to hold the data: -Syncfusion has no liability for any damage or consequence that may arise by using or viewing the samples. The samples are for demonstrative purposes, and if you choose to use or access the samples, you agree to not hold Syncfusion liable, in any form, for any damage that is related to use, for accessing, or viewing the samples. By accessing, viewing, or seeing the samples, you acknowledge and agree Syncfusion’s samples will not allow you seek injunctive relief in any form for any claim related to the sample. If you do not agree to this, do not view, access, utilize, or otherwise do anything with Syncfusion’s samples. +```csharp +namespace GettingStarted_Sample +{ + public class PopulationDetail + { + public string Continent { get; set; } + public string Country { get; set; } + public double Growth { get; set; } + public double Population { get; set; } + } +} +``` + +## Creating the ViewModel for TreeMap + +Create a `PopulationViewModel` class (`ViewModel/PopulationViewModel.cs`) with sample data: + +```csharp +using System.Collections.ObjectModel; + +namespace GettingStarted_Sample +{ + public class PopulationViewModel + { + public PopulationViewModel() + { + this.PopulationDetails = new ObservableCollection(); + PopulationDetails.Add(new PopulationDetail() { Continent = "Asia", Country = "Indonesia", Growth = 3, Population = 237641326 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "Asia", Country = "Russia", Growth = 2, Population = 152518015 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "Asia", Country = "Malaysia", Growth = 1, Population = 29672000 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "North America", Country = "United States", Growth = 4, Population = 315645000 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "North America", Country = "Mexico", Growth = 2, Population = 112336538 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "North America", Country = "Canada", Growth = 1, Population = 35056064 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "South America", Country = "Colombia", Growth = 1, Population = 47000000 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "South America", Country = "Brazil", Growth = 3, Population = 193946886 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "Africa", Country = "Nigeria", Growth = 2, Population = 170901000 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "Africa", Country = "Egypt", Growth = 1, Population = 83661000 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "Europe", Country = "Germany", Growth = 1, Population = 81993000 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "Europe", Country = "France", Growth = 1, Population = 65605000 }); + PopulationDetails.Add(new PopulationDetail() { Continent = "Europe", Country = "UK", Growth = 1, Population = 63181775 }); + } + + public ObservableCollection PopulationDetails + { + get; + set; + } + } +} +``` + +## Initializing the TreeMap (XAML) + +In `MainPage.xaml`, set the `DataContext` to `PopulationViewModel`, then initialize `SfTreeMap` by binding `ItemsSource` to the data collection and setting `WeightValuePath` to the data property: + +```xml + + + + + + + + + + + +``` + +## Initializing the TreeMap (Code-Behind) + +Alternatively, you can create the TreeMap entirely in C# code-behind: + +```csharp +using Syncfusion.UI.Xaml.TreeMap; + +// Creating the ViewModel +PopulationViewModel viewModel = new PopulationViewModel(); + +// Assigning the data context +this.DataContext = viewModel; + +// Initializing the TreeMap +SfTreeMap sfTreeMap = new SfTreeMap(); + +// Setting ItemsSource and WeightValuePath +sfTreeMap.ItemsSource = viewModel.PopulationDetails; +sfTreeMap.WeightValuePath = "Population"; + +// Adding TreeMap to the Grid +grid.Children.Add(sfTreeMap); +``` + +![Getting started with uwp treemap](GettingStarted.png) + +## Reference + +- [Syncfusion UWP TreeMap Getting Started Documentation](https://help.syncfusion.com/uwp/treemap/getting-started)