<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2452629445557820138</id><updated>2026-06-11T06:47:24.039+05:30</updated><category term="News"/><category term="Windows"/><category term="Tech News"/><category term="Windows 10"/><category term="Tips"/><category term="Microsoft Windows 11"/><category term="Silverlight"/><category term="Editorial"/><category term="Windows Insiders"/><category term="VisualStudio"/><category term="Windows10"/><category term="Microsoft Edge"/><category term="WP7"/><category term="Sponsored"/><category term=".Net"/><category term="Windows 10 Tips and Tricks"/><category term="Internet Browser"/><category term="WP7DEV"/><category term="Android"/><category term="Office"/><category term="CodeProject"/><category term="Web"/><category term="Office 365"/><category term="Windows 11 Dev Channel Build"/><category term="Microsoft 365"/><category term="Microsoft Edge Insiders"/><category term="WPDev"/><category term="Win10Tips"/><category term="DZone"/><category term="Office Insider"/><category term="WinDev"/><category term="Tutorial"/><category term="Latest Microsoft Office Insiders Preview Build"/><category term="SilverlightZone"/><category term="XAML"/><category term="WP8Dev"/><category term="Browser"/><category term="Visual Studio 2015"/><category term="Windows Phone"/><category term="Visual Studio 2017"/><category term="CSharp"/><category term="WP7Tips"/><category term="Win8"/><category term="WP8"/><category term="Security"/><category term="Windows8"/><category term="Mango"/><category term="Telerik"/><category term="Smartphone"/><category term="SilverlightTips"/><category term="Microsoft PowerToys"/><category term="Mobile"/><category term="WPF"/><category term="Azure"/><category term="Events"/><category term="WinRT"/><category term="Artificial Intelligence"/><category term="Windows Patch Tuesday Update"/><category term="Career"/><category term="Download latest version of Microsoft Edge (Chromium)"/><category term="Linux"/><category term="Microsoft Visual Studio 2022"/><category term="Git"/><category term="LightSwitch"/><category term="Microsoft Teams"/><category term="Silverlight5"/><category term="Visual Studio 2019"/><category term="Outlook"/><category term="Product Review"/><category term="Tech Launch"/><category term="Achievements"/><category term="C#"/><category term="Visual Studio 2015 Tips &amp; Tricks"/><category term="Windows 10 Creators Update"/><category term="Windows 10 Redstone 2"/><category term="Windows 10 Version 21H1"/><category term="ExpressionBlend"/><category term="Tools"/><category term="Google"/><category term="WP8Tips"/><category term="JavaScript"/><category term="SilverlightTutorial"/><category term="Windows 10 Fall Creators Update"/><category term="Windows 10 Version 20H2"/><category term="GitHub"/><category term="VisualStudio11"/><category term="Windows 10 April 2018 Update"/><category term="Windows 11 Canary Channel Build"/><category term="Google Chrome"/><category term="Visual Studio 2017 Tips &amp; Tricks"/><category term="Windows 10 Redstone 3"/><category term="Windows 10 Redstone 4"/><category term="Awards"/><category term="VisualStudio2012"/><category term="Windows 10 20H1 Build"/><category term="Windows 10 Dev Channel Build"/><category term="Windows 11 Beta Channel Build"/><category term="Windows 11 Patch Tuesday Update"/><category term="iOS"/><category term="Gadgets"/><category term="Git Basics"/><category term="Git Tutorial"/><category term="Windows 10 May 2020 Update"/><category term="Windows 10 Mobile"/><category term="Windows 10 Redstone 5"/><category term="Chrome"/><category term="Game"/><category term="SDK"/><category term="Visual Studio 2013"/><category term="Crypto Currency"/><category term="OneDrive"/><category term="UWPDev"/><category term="Windows 10 Version 21H2"/><category term="Windows Store"/><category term="macOS"/><category term="HTML"/><category term="Windows 10 19H1 Build"/><category term="Windows Phone 8.1"/><category term="MVP"/><category term="Windows 10 20H2 Build"/><category term="Windows 10 Patch Tuesday Update"/><category term="Windows Subsystem for Android (WSA)"/><category term="Book"/><category term="Git Cheatsheet"/><category term="SL5Tutorial"/><category term="Windows 11 Release Preview Channel Build"/><category term="Windows Phone Apps"/><category term="C# 4.0"/><category term="How to do in Windows 11"/><category term="WP7.8"/><category term="Solution"/><category term="UWP"/><category term="WPAppReview"/><category term="Win8Dev Tutorial"/><category term="Office 2016"/><category term="Outlook 2016"/><category term="TypeScript"/><category term="Windows7"/><category term="Excel"/><category term="GuestPost"/><category term="HTML5"/><category term="MVVM"/><category term="Manika-Chowdhury"/><category term="Metro"/><category term="WhatsApp"/><category term="Windows 10 October 2020 Update"/><category term="Windows 8.1"/><category term="Bitcoin"/><category term="GiveawayContest"/><category term="Lumia"/><category term="Microsoft Tuesday"/><category term="Node.js"/><category term="Skype"/><category term="Software Development and Project Management"/><category term="Visual Studio Code"/><category term="Visual Studio Productivity Tips"/><category term="Windows 10 Anniversary Update"/><category term="Windows Subsystem for Linux (WSL)"/><category term="Nokia"/><category term="Surface"/><category term="Windows 10 October 2018 Update"/><category term=".NET Core"/><category term="Archives"/><category term="Azure DevOps"/><category term="Azure Portal"/><category term="Azure Tutorial"/><category term="C# 6.0"/><category term="Cybersecurity"/><category term="Generative AI"/><category term="LightSwitchTutorial"/><category term="Office 2013"/><category term="Office Insiders for Android"/><category term="ProductivityPowerTools"/><category term="Video"/><category term="Visual Studio 2019 Tips &amp; Tricks"/><category term="Windows 8 Tips"/><category term="XAMLTips"/><category term="eBook"/><category term="xiaomi"/><category term="5G Smartphones"/><category term="Android 13"/><category term="Build Conference"/><category term="Cloud"/><category term="Cloud Computing"/><category term="Gen AI"/><category term="KolkataGeeks"/><category term="Learn Angular from scratch"/><category term="Microsoft Copilot"/><category term="Microsoft PowerShell"/><category term="NokiaBlog"/><category term="SQL"/><category term="TeamPulse"/><category term="TypeScript Tutorial"/><category term="TypeScript Tutorial for beginners"/><category term="VPN"/><category term="Win8Dev"/><category term="Windows 10 May 2019 Update"/><category term="Windows 10 May 2021 Update"/><category term="Windows 11 Tips and Tricks"/><category term="Android 11"/><category term="Android 12"/><category term="Android 14"/><category term="Azure Tips and Tricks"/><category term="Blockchain Technology"/><category term="GitHub Copilot"/><category term="Greetings"/><category term="Samsung"/><category term="Turbo360"/><category term="VideoTutorial"/><category term="VisualStudio15"/><category term="Windows Copilot"/><category term="YouTube"/><category term="iPhone"/><category term="Data Recovery"/><category term="DevCon"/><category term="Digital Security"/><category term="Microsoft Windows 11 Troubleshooting Guide"/><category term="Microsoft Word"/><category term="Oppo"/><category term="Samsung Galaxy Smartphone"/><category term="Video Editing Software"/><category term="Virtual Reality"/><category term="Windows Defender"/><category term="Xiaomi Smartphones"/><category term="jQuery"/><category term="BUILD Conference 2023"/><category term="C# 5.0"/><category term="Essay Writing Services"/><category term="HTML5 Tips"/><category term="Interoperability"/><category term="Interview Questions"/><category term="Office 2019"/><category term="Outlook 2013"/><category term="PUG"/><category term="Python"/><category term="SQLServer"/><category term="Stress Management"/><category term="TeamPulseTutorial"/><category term="Webcast"/><category term="Windows 10 November 2021 Update"/><category term="Windows 10 Version 22H2"/><category term="ASP.NET Core"/><category term="Agentic AI"/><category term="Android Weekly Digest"/><category term="Antivirus"/><category term="Auto Clicker for Windows"/><category term="CSS"/><category term="Certification"/><category term="CloudDocs in Serverless360"/><category term="Crypto Wallets"/><category term="DataGrid"/><category term="DevComponent"/><category term="Digital Marketing"/><category term="Exam"/><category term="InternetExplorer"/><category term="Java"/><category term="JetBrains"/><category term="Machine Learning"/><category term="Microsoft Edge 117"/><category term="Microsoft Office 2021"/><category term="NPOI Libraries"/><category term="Privacy"/><category term="RadRichTextBox"/><category term="Ransomware"/><category term="ReSharper"/><category term="Realme Phones"/><category term="Skype 8"/><category term="Stellar"/><category term="TFS"/><category term="Visual Studio 2015 Update 3 Patch"/><category term="Vivo"/><category term="Windows 11 Insider Preview Build 23493"/><category term="Windows 11 Insider Preview Build 25324"/><category term="Windows Feature Experience Pack"/><category term="Windows Terminal"/><category term="Animation"/><category term="Augmented Reality"/><category term="Automation"/><category term="Express VPN"/><category term="Facebook"/><category term="Firefox"/><category term="Honor 5 Series"/><category term="IE"/><category term="Ignite 2022 Conference"/><category term="Internet Technology"/><category term="Kinect"/><category term="Lumia800"/><category term="MEF"/><category term="MIX11"/><category term="MVB"/><category term="Microsoft Band"/><category term="Microsoft Defender"/><category term="Microsoft Dev Home"/><category term="Microsoft Edge 115"/><category term="Microsoft Edge 120"/><category term="Microsoft Editor"/><category term="Office 365 Migration Tool"/><category term="OpenDayIn"/><category term="PC Gaming"/><category term="PDF"/><category term="Python Tutorial"/><category term="Roblox Exploits and Script Executors"/><category term="Samsung Galaxy S24 Series"/><category term="Serverless360"/><category term="Smartphones under 20K"/><category term="SurveySparrow"/><category term="Swifdoo PDF"/><category term="Syncfusion"/><category term="WannaCry"/><category term="Windows 10 November 2019 Update"/><category term="Windows 11 Version 22H2"/><category term="iQOO"/><category term="uCertify"/><category term=".NET Standard"/><category term="AI"/><category term="AI-Driven Testing"/><category term="Ad Mediator"/><category term="Agile"/><category term="Async"/><category term="Azure Documenter in Serverless360"/><category term="BigData"/><category term="Bing"/><category term="C# Corner"/><category term="CSS3"/><category term="ChatGPT"/><category term="Cloud PC"/><category term="Command Prompt"/><category term="Digital Signature"/><category term="Entity Framework Core"/><category term="Form Builders"/><category term="Gaming Monitors"/><category term="HoloLens"/><category term="Honor Smartphones"/><category term="Hyper-V Manager"/><category term="Infragistics"/><category term="Instagram"/><category term="Intel"/><category term="IoT"/><category term="Joydeep-Das"/><category term="Known Folder Move"/><category term="LinkedIn"/><category term="MVC"/><category term="Malware"/><category term="Mastering Visual Studio 2017"/><category term="Microsoft Dev Drive"/><category term="Microsoft Edge 121"/><category term="Microsoft Edge 122"/><category term="Microsoft Exchange Server"/><category term="Microsoft HoloLens"/><category term="Microsoft PowerPoint"/><category term="Microsoft Visual Studio 2022 version 17.7"/><category term="Mixed Reality"/><category term="NFTs"/><category term="O365 Migration"/><category term="OP Auto Clicker"/><category term="OnePlus"/><category term="Oppo Reno Series"/><category term="Oppo Smartphones"/><category term="Outlook PST Repair Tool"/><category term="PDC2010"/><category term="PathListBox"/><category term="Pluralsight"/><category term="Publication"/><category term="RIA Service"/><category term="Remote Team Building and Cooperation Strategies"/><category term="SOAP Web Service"/><category term="SSL"/><category term="Serialization"/><category term="SkyDrive"/><category term="Software Development"/><category term="Surfshark VPN"/><category term="Survey Tool"/><category term="Tablet"/><category term="Tech Tips"/><category term="Tenorshare 4DDiG"/><category term="Top 5 Android News of the day"/><category term="Twitter"/><category term="Uno Platform"/><category term="VLC Media Player"/><category term="WCF"/><category term="WSDL"/><category term="Web Hosting Provider"/><category term="Web Service"/><category term="WinUI"/><category term="Windows 10 19H2 Build"/><category term="Windows 10 Weekly Digest"/><category term="Windows 11 Insider Preview Build 25217"/><category term="Windows 11 Insider Preview Build 25247"/><category term="Windows 365"/><category term="Windows 365 Cloud PC"/><category term="Windows Command Prompt"/><category term="Windows Template Studio"/><category term="Windows UI Library"/><category term="WonderFox DVD Ripper"/><category term="XML"/><category term="Xiaomi 12 Series Smartphones"/><category term=".NET 8"/><category term="10.or E"/><category term="10or"/><category term="2026 Trends"/><category term="3D SketchUp"/><category term="AI Agents"/><category term="AI Workflow"/><category term="ASUS"/><category term="ASUS Smartphone"/><category term="Adobe Acrobat Pro"/><category term="Agile Scrum"/><category term="Angular"/><category term="Apple"/><category term="Apple Siri"/><category term="Architecture"/><category term="Atlassian"/><category term="Auto Clicker"/><category term="AutoGen"/><category term="AutoMapper"/><category term="Azure Data Factory"/><category term="Azure documentation generator"/><category term="BUILD Conference 2022"/><category term="Batch File"/><category term="BenQ ZOWIE"/><category term="Best Practices"/><category term="Bing Rewards"/><category term="Bitbucket"/><category term="Brand Loyalty"/><category term="Build Conference 2016"/><category term="Build Conference 2020"/><category term="Business Banking"/><category term="Business Growth"/><category term="C# 11"/><category term="C# 7.1"/><category term="C# 9.0"/><category term="CI/CD Pipelines"/><category term="CPS Test"/><category term="CRM"/><category term="Camera Safety"/><category term="Candy Crush"/><category term="Click Speed"/><category term="Cloud Migration Challenges"/><category term="Cloud Migration Strategy"/><category term="Cloud Storage Platforms"/><category term="Code Refactoring"/><category term="Code Review"/><category term="Connectify"/><category term="Console"/><category term="Coolmuster Android Assistant"/><category term="Crypto Obfuscator"/><category term="Customer Experience"/><category term="CyberGhost VPN"/><category term="Database"/><category term="Deep Learning"/><category term="DevOps"/><category term="Digital Transformation"/><category term="Download Music for Free on Android"/><category term="Drone Technology"/><category term="Dynamics 365 CRM"/><category term="E-commerce Optimization"/><category term="EMUI 9.0"/><category term="EaseUS Data Recovery Wizard"/><category term="Employee Wellbeing"/><category term="Esports"/><category term="Etcher"/><category term="ExpressionStudio"/><category term="F#"/><category term="FBVideoDown Video Downloader"/><category term="Fintech"/><category term="FlexClip"/><category term="FreeCharge"/><category term="Frontend"/><category term="Frugal-Dad"/><category term="Gaming Safety"/><category term="Gaming Tools"/><category term="Gemini"/><category term="GitHub Actions"/><category term="GitLab"/><category term="Google AdWords"/><category term="Google Docs"/><category term="Google Gemini"/><category term="Google Maps"/><category term="Google Photos"/><category term="Google+"/><category term="GooglePlus"/><category term="Graphics Optimization"/><category term="Guerilla Malware"/><category term="HP Laptops"/><category term="HTML Cheat Sheet"/><category term="Hacker Prevention"/><category term="Hardware Benchmark"/><category term="Hardware Guide"/><category term="Harikrishna Kundariya"/><category term="Healthcare"/><category term="HideME VPN"/><category term="Honeygain"/><category term="Honor 8 Pro"/><category term="Honor 80"/><category term="Honor 80 Pro"/><category term="Honor 80 Series Smartphones"/><category term="Honor 90"/><category term="Honor Magic 7 Pro"/><category term="Honor MagicOS 8"/><category term="Honor MagicOS 9"/><category term="Humix Videos"/><category term="HyperOS"/><category term="IE10"/><category term="IE9"/><category term="IIS"/><category term="INETA"/><category term="Ignite 2019 Conference"/><category term="ImagineCup"/><category term="InVideo Video Editing Software"/><category term="Indian SME"/><category term="Infinix"/><category term="Infinix Note"/><category term="Infinix Note 30"/><category term="Infinix Note 30 VIP Racing Edition"/><category term="Input Lag"/><category term="Instagram Stories"/><category term="Instagram Video Downloader"/><category term="Internet Safety"/><category term="Internet of Things"/><category term="Interview"/><category term="Inventory Management"/><category term="JIRA"/><category term="JSON"/><category term="Jenkins"/><category term="JustDecompile"/><category term="Kelly-Marsh"/><category term="Kids"/><category term="Laptop Security"/><category term="LastPass"/><category term="LogicNP Software"/><category term="M365 tenant move"/><category term="MDR"/><category term="MSDN"/><category term="Made by Google Event"/><category term="Marketing Tips"/><category term="Maven"/><category term="Mental Health"/><category term="Microsoft"/><category term="Microsoft 365 Migration"/><category term="Microsoft 365 Transition"/><category term="Microsoft AutoGen"/><category term="Microsoft Edge 116"/><category term="Microsoft Edge 119"/><category term="Microsoft Edge 124"/><category term="Microsoft Edge 125"/><category term="Microsoft Edge 127"/><category term="Microsoft Lens"/><category term="Microsoft Office 2024"/><category term="Microsoft Visual Studio 2022 version 17.8"/><category term="Microsoft Visual Studio 2022 version 17.9"/><category term="MicrosoftMonday"/><category term="MiniTool Movie Maker Tool"/><category term="MobiKin Doctor"/><category term="MongoDB"/><category term="Monitor Reviews"/><category term="Mozilla"/><category term="MySQL Database"/><category term="NDepend"/><category term="Neha-Choudhary"/><category term="Node.js Video Tutorial Series"/><category term="Nord VPN"/><category term="Notepad++"/><category term="Nova Launcher"/><category term="NuGet"/><category term="O365 Data Backup"/><category term="OPPO F23 5G Smartphone"/><category term="Obfuscator"/><category term="Office 2010"/><category term="OneNote"/><category term="OnePlus 11"/><category term="OnePlus 11 Smartphone Specs and Price"/><category term="OnePlus Smartphones"/><category term="Online Gaming"/><category term="Oppo A11S Smartphones"/><category term="Oppo A36 Smartphone"/><category term="Oppo A59 5G Smartphone"/><category term="Outlook RT"/><category term="PHP"/><category term="Packt"/><category term="Passive Income"/><category term="Performance"/><category term="Petya"/><category term="Phishing"/><category term="PhysicsLibrary"/><category term="Picasa"/><category term="Planet VPN"/><category term="Play Station"/><category term="Poco"/><category term="Poco X3"/><category term="Poco X3 Smartphone"/><category term="Powe BI"/><category term="Predator Spyware"/><category term="Prisma"/><category term="Programming"/><category term="Programming Language"/><category term="Project Reunion"/><category term="Quantum Computing"/><category term="RSC"/><category term="RSS"/><category term="React"/><category term="Real-Time Payments"/><category term="Realme 11 Series"/><category term="Realme Narzo 20 Series Smartphones"/><category term="Realme Narzo Smartphones"/><category term="Redmi 9 Prime Smartphone"/><category term="Redmi Note 11 Series Smartphones"/><category term="Redmi Note 12 Series Smartphones"/><category term="Reflex Test"/><category term="Refresh Rate"/><category term="Remote Work and Collaboration"/><category term="Resume"/><category term="Retail Business Growth"/><category term="Retail Fundamentals"/><category term="Retail POS Systems"/><category term="Retail Technology"/><category term="SSD"/><category term="SSSGram Video Downloader"/><category term="Salesforce Experience Cloud"/><category term="Samsung Galaxy M51"/><category term="Samsung Galaxy S21"/><category term="Samsung Galaxy S22 Series"/><category term="Scanning Tools"/><category term="Sejda PDF"/><category term="Shivprasad Koirala"/><category term="Siri"/><category term="Siri 2.0"/><category term="Small Business"/><category term="Smartwatches"/><category term="Snaptube Music Downloader"/><category term="Snoopza - Android Phone Tracker"/><category term="Snyk"/><category term="Solid State Drives"/><category term="Sonarqube"/><category term="Stellar Migrator Review"/><category term="Stellar Migrator for Exchange"/><category term="Store Location Strategy"/><category term="Surface Pro"/><category term="Surface Pro 8"/><category term="SysTools"/><category term="SysTools Hard Drive Data Recovery"/><category term="TLS 1.3"/><category term="Tech In India"/><category term="Tech Reviews"/><category term="Techno Pova 5G Smartphone"/><category term="Telerik Developer Expert"/><category term="Tenant to Tenant Migration Software"/><category term="Tenant-to-Tenant Migration"/><category term="Testing"/><category term="TickTick"/><category term="TradePub"/><category term="Truecaller"/><category term="Two-Factor Authentication"/><category term="Urban VPN"/><category term="Valorant"/><category term="VeePN VPN"/><category term="Veracode"/><category term="Virtual Employees"/><category term="Vivo T1 5G Smartphone"/><category term="Vivo X100 Series 5G Smartphones"/><category term="Vivo Y21T"/><category term="Vivo Y78 5G Smartphone"/><category term="VoIP"/><category term="Web Development"/><category term="Webcam Privacy"/><category term="Wi-Fi Extenders"/><category term="Windows 10 Release Preview Channel Build"/><category term="Windows 11 Insider Preview Build 23419"/><category term="Windows 11 Insider Preview Build 23424"/><category term="Windows 11 Insider Preview Build 25281"/><category term="Windows 11 Insider Preview Build 26063"/><category term="Windows 11 September 2023 Update"/><category term="Windows 11 Version 21H2"/><category term="Windows 11 Version 23H2"/><category term="Windows 11 Version 24H2"/><category term="Windows 9"/><category term="Windows Community Toolkit"/><category term="Windows Presentation Foundation Development Cookbook"/><category term="Windows Privacy"/><category term="Wondershare"/><category term="Wondershare Virbo Synthesia"/><category term="Work Life Balance"/><category term="Xamarin"/><category term="Xiaomi 14 Series Smartphones"/><category term="Yammer"/><category term="Zoom"/><category term="boAt Smartwatches"/><category term="dotPeek"/><category term="eSIM"/><category term="iPad"/><category term="iPhone 11"/><category term="iQOO 12 Android Smartphone"/><category term="iQOO Neo 6 Smartphones"/><category term="iQOO Neo 7 Pro"/><category term="iTextSharp"/><title type='text'>Latest Tech News, Product Reviews, articles and more - Kunal-Chowdhury.com</title><subtitle type='html'>Discover the latest technical news and trends in the industry. Explore our comprehensive coverage of cutting-edge technologies and innovations.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://www.kunal-chowdhury.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/-/Silverlight?max-results=10'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/search/label/Silverlight'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/-/Silverlight/-/Silverlight?start-index=11&amp;max-results=10'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>366</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>10</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-4094548891715520863</id><published>2015-08-21T08:00:00.000+05:30</published><updated>2015-08-21T08:00:00.904+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>#Silverlight is not running on Google #Chrome! Why?</title><content type='html'>&lt;p&gt;Starting Google Chrome version 42, Google has blocked NPAPI plugins in their browser and as a result, you will not be able to run Silverlight applications in your Chrome browser. So, what to do? There is a quick but temporary solution by which you will be able to re-enable the plugin.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In this blog post today, we are going to detail the process. Do remember that, it’s a temporary solution and won’t work in future release of Google Chrome.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 15px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiPYWY_ngVXY02D7m4KTw7_1BHxwgeY3Zn6tFmOdLJYM2sqa_b9vopeoj91hrSt3TT8II3NmTVY7Nf2g68_lxrjiuOSkOm99ALZe3dgSgxBL__gWVXYRdsTW__K_VgvdLhFo25C7NzmSk/?imgmax=800&quot; width=&quot;696&quot; height=&quot;272&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Plugins allow extra features to be added to browsers. For example, you can watch certain types of videos or play a game that’s on a webpage. Silverlight is also a plugin that enables you to run rich web applications built using XAMLs.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In the past, many plugins were developed using an older system called NPAPI. Today fewer sites are using NPAPI plugins and they can sometimes cause security risks on websites. To make browsing with Chrome safer, faster and more stable, Google is stopping support for NPAPI plugins with Chrome version 42. You might also heard that, plugin support is already not available in &lt;a href=&quot;http://www.kunal-chowdhury.com/search/label/Microsoft%20Edge&quot; target=&quot;_blank&quot;&gt;Microsoft Edge&lt;/a&gt; for Windows 10.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As Google stopped using NPAPI plugins, generally Silverlight also stopped working on Chrome browsers starting version 42 and thus when you are browsing Silverlight applications on Chrome, it only says you to download the Silverlight plugin. You might have already tried and reinstall the Silverlight plugin and nothing worked out, but working in Firefox and Internet Explorer.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Chrome asking to install Silverlight though it&amp;#39;s installed and enabled (www.kunal-chowdhury.com)&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 15px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Chrome asking to install Silverlight though it&amp;#39;s installed and enabled (www.kunal-chowdhury.com)&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSZ02vuEp4OZY6AklUvEgiQ8H4Hx12eVeSCGiWgEGgrgRgs6tp5HOAFNbe-vDSgttV08OslqzE_V7BC0cniLZA4UGekGMBK2TqC4OB4TTMZMpoySW-k44Rg0w1RP88yvBDQSbj917-_CQ/?imgmax=800&quot; width=&quot;690&quot; height=&quot;388&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Though it is by default stopped, but there is a way to re-enable it by tweaking the Chrome settings. Remember that, it’s just a temporary solution if you are facing this issue. From Chrome version 45 and onwards, this temporary solution will not work at all and in that case, you have to use a different browser like IE or Firefox to run Silverlight applications.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To tweak it to run Silverlight applications temporary, open Google Chrome and in the address bar, enter the following URL without the quotes: “&lt;strong&gt;chrome://flags/#enable-npapi&lt;/strong&gt;”. This will open the Chrome’s flags settings page and will directly navigate you to the section where you will easily find the NPAPI settings in the list.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Open Chrome&amp;#39;s Flags settings to enable NPAPI (www.kunal-chowdhury.com)&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 15px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Open Chrome&amp;#39;s Flags settings to enable NPAPI (www.kunal-chowdhury.com)&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIFyLo-QkPfeIAkTaas2CmaeUEIRiuvkrCLfZ4xouU5bnWO2j3aioZGikKLNn8RF_X-khyphenhyphenb7beHReI8S4g9aaHFE7W5QM4slQ7IxIUUHDnvBDZiOe1FaTGtCNiWoE1CnifCPtlFi0M0Y4/?imgmax=800&quot; width=&quot;690&quot; height=&quot;172&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As shown above, click the link that says “&lt;strong&gt;Enable&lt;/strong&gt;”. This will enable the use of NPAPI plugins and as a result the Silverlight plugin. Once you enable this plugin, it will ask you to relaunch the browser. Make sure, you clicked the “&lt;strong&gt;Relaunch Now&lt;/strong&gt;” button as shown below to close and start the browser. This will apply the settings properly.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Relaunch Google Chrome for the changes to take effect (www.kunal-chowdhury.com)&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 15px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Relaunch Google Chrome for the changes to take effect (www.kunal-chowdhury.com)&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWuRHaw5Pv4Y5f9qrCT_IRYLbC6dM7kIkqxP3bbPXeNjbirlOJDXXd8VazE3wN_MQOqB2Fvn2gdWOJc9su0lEzktYinLGoy_UBdWFPT4VOilrc84ymq89DZ7EGBWx339_Z8kzBLlhJil4/?imgmax=800&quot; width=&quot;690&quot; height=&quot;388&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Now you can observe that the NPAPI plugin has been activated and the link “Enable” became “Disable”. If you want to disable the plugin, you can click that link. But as we are not disabling it, just keep it as-is and proceed next.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;NPAPI becomes enabled in Chrome (www.kunal-chowdhury.com)&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 15px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;NPAPI becomes enabled in Chrome (www.kunal-chowdhury.com)&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYH3nl_K0qPFoR4uyqIxUXK65j68ClyN7_sMG1ZwFij-WyOFJqVrhptm5kb9keRnTeQBDjhx8tnuAjS99XXcQ3Ugh6DjRlC12DNm0sSc8Kb9Hso_EFbAaBzZgGCKzN0EyCU5dqfiEXvuk/?imgmax=800&quot; width=&quot;690&quot; height=&quot;172&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Now if you run your Silverlight applications in Google Chrome, it will run but will show you a warning message that says “This site uses a plugin (Silverlight) that will soon be unsupported”, as shown in the below screenshot:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Silverlight will run but with a warning message (www.kunal-chowdhury.com)&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 15px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Silverlight will run but with a warning message (www.kunal-chowdhury.com)&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Vrsu5QMMaJ3X7-h8o30XVRHK7bd4Wg9uc__Un1v6s4DAMA4IMHa7lPZYs-xUqo9Um5Ekgl1q1VEiNhsjVt5CXkx_iGxOZ5p16OyR-UMUhfCKGjzRgAN5TeVlomAORyFMGJYOoYfOtFk/?imgmax=800&quot; width=&quot;690&quot; height=&quot;131&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Yes, that’s right. As I said above, Google has stopped using the NPAPI plugin that runs the Silverlight and many other plugins. This is just a trick to temporary enable it. Google has also mentioned that, going forward this will be totally stopped and they targeted to permanently deactivate Silverlight NPAPI plugins from version 45. Till that time, this trick will work.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Hope that, the trick was useful to you to fix the Silverlight loading issue in your Google Chrome. Thanks for visiting my blog and subscribing to my RSS feed and email &lt;a href=&quot;http://eepurl.com/gLdcD&quot; target=&quot;_blank&quot;&gt;newsletter&lt;/a&gt; to keep yourself updated on the new blog posts. I am available on &lt;a href=&quot;http://twitter.com/kunal2383&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;http://facebook.com/blog.kunal&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt;, Google+ and LinkedIn. Do connect with me.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/4094548891715520863'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/4094548891715520863'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2015/08/silverlight-not-running-on-chrome.html' title='#Silverlight is not running on Google #Chrome! Why?'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiPYWY_ngVXY02D7m4KTw7_1BHxwgeY3Zn6tFmOdLJYM2sqa_b9vopeoj91hrSt3TT8II3NmTVY7Nf2g68_lxrjiuOSkOm99ALZe3dgSgxBL__gWVXYRdsTW__K_VgvdLhFo25C7NzmSk/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-7995586056667655283</id><published>2014-12-30T08:00:00.000+05:30</published><updated>2015-01-03T11:32:50.662+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="InternetExplorer"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="SilverlightTips"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="VisualStudio"/><title type='text'>Solution: Internet Explorer crashes when debugging #Silverlight apps</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 20px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKWs2E-4hK7XjVWhacIG6epILVauVKmT9xTVTnpwE4tJN-6Ps5aTGHFCMe9PdqTiitx33xkMcrOb7-QyRzAWq6mAw5rNQ2LaqDXuCNDKX1850yKhzRgRPbZ8YD1ErQMSP7trhXPxXtbYI/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;Is your Internet Explorer crashing when you are trying to debug your Silverlight application from Visual Studio but runs perfectly when running without debug option set? This might be due to an update that Microsoft pushed recently via Windows Update service.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you faced the same, this post will guide you to resolve it at the earliest. Continue reading to learn about the trick to resolve this. Share it with your friends. This might help them too.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 20px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj60_xRa9UxyinLfSvI12tE6MTv1DV4imn4ESDwnozwECr3Cx_55knNVLrTtL88PoARAptbvsv-4Pw8yCt2Lkgtaj_xlYj9gbfwdnhs9cDh15gPuZ9m6jfc1x5GCmeXUV0HP6lqSm0LOa0/?imgmax=800&quot; width=&quot;696&quot; height=&quot;272&quot; /&gt;&lt;/p&gt;&lt;p&gt;Recently I faced a critical issue when trying to debug my Silverlight application from Visual Studio. The application was running smooth, if I detach the debugger. I spent almost the entire evening to find out the cause of the issue and finally was able to resolve it. The issue was not related to Visual Studio, Silverlight Plugin, Silverlight Application, Internet Explorer but was due to un update that my system installed two days back.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you face similar issue after the Windows Update, just go to “Control Panel –&amp;gt; Programs –&amp;gt; View Installed Updates” and search for the following “&lt;strong&gt;Security Update for Microsoft Windows&lt;/strong&gt;” KB patch (KB3013126, KB3008923, KB2978120) and uninstall them one by one. I am not sure which one exactly created the issue but uninstalling all of them worked. Don’t forget to restart your system after the uninstallation process to apply the changes.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Solution - Internet Explorer crashes when debugging Silverlight apps&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 20px 5px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Solution - Internet Explorer crashes when debugging Silverlight apps&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKo3W0ZWu1Kp6Oyk2Rs0bm3vUl4PLmlypZJ95WbftWQ1cr4UzITEQeWweb9FZEPAiyus0Osv4ehFcVHIUhyZA9nVB1DWfjyPiTlTQDR5jZngeC1XQBUHAlfi-Ylhp_hzJFfrx6Kch_X80/?imgmax=800&quot; width=&quot;696&quot; height=&quot;121&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;font color=&quot;red&quot;&gt;Update:&lt;/font&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I have further investigated the issue and confirmed that, this problem is only occurring for the &lt;b&gt;KB3008923&lt;/b&gt; update. If you just uninstall the said update and reboot, it will work.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you find any other alternate to the problem, don’t forget to mention it in the below comment section. I will be happy to highlight them in this post body.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Subscribe to my blog’s RSS feed and Email Newsletter to get the regular updates of posts directly delivered to your inbox. I am available on Twitter, Facebook, Google+ and Linked-In. Do connect with me there to get the updates on what I share over those social networking sites. Cheers.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/7995586056667655283'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/7995586056667655283'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2014/12/ie-silverlight-crash.html' title='Solution: Internet Explorer crashes when debugging #Silverlight apps'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKWs2E-4hK7XjVWhacIG6epILVauVKmT9xTVTnpwE4tJN-6Ps5aTGHFCMe9PdqTiitx33xkMcrOb7-QyRzAWq6mAw5rNQ2LaqDXuCNDKX1850yKhzRgRPbZ8YD1ErQMSP7trhXPxXtbYI/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-2529087273242498163</id><published>2014-08-19T15:38:00.000+05:30</published><updated>2014-08-19T15:38:00.549+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight5"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 8.1"/><category scheme="http://www.blogger.com/atom/ns#" term="WP7DEV"/><category scheme="http://www.blogger.com/atom/ns#" term="WP8Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="WPDev"/><title type='text'>StorageHelper - For Windows Phone + Silverlight app developers</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPW6vcum4YdalmxJqzDwmm5M2I_nferrSZ5_E5txtvqkrOEE-FsxHKMae9nhkoG-h9KlEFfCpuQERVIiqg4TPqL1daaXKBzCf5dqZBwNvdzKBSuJCF79aoHdlhr7c-h5S3INNKfTtXdXM/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;Few months ago, I wrote a small helper class for all my Windows Phone Silverlight applications, which helped me a lot to store and retrieve data to and from IsolatedStorageSettings. Thus I thought to share the same with you, in case you find it useful.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Read more to&amp;#160; find out the code, which you can use freely. Here the only catch is: it works only with the Silverlight type applications.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;br /&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKbt1QNDFEpmAm4g6flMJAjw-Ls6hyphenhyphen5jHA_pjCBsQpjqo8PKuEK4prp1gjz2OxrLTqrcTBTvhEFIlpF3huxO9Ey_Ruv-Ghrjlzhjh7qFJ7Ax0i38WBrAEam0SgEOSdmf6IKKoA_EdFsZg/?imgmax=800&quot; width=&quot;690&quot; height=&quot;170&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The helper class consists of three methods named “&lt;strong&gt;StoreSetting&lt;/strong&gt;”, “&lt;strong&gt;GetSetting&lt;/strong&gt;” and “&lt;strong&gt;RemoveSetting&lt;/strong&gt;”. As the name suggests, the said methods will help you to save, retrieve and delete your data to and from Isolated Storage Settings.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Please find below the complete source code which will work with Windows Phone Silverlight type applications, but I will try to provide another code snippet quite soon to help you work with Universal apps.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div id=&quot;codeSnippetWrapper&quot;&gt;&lt;div id=&quot;codeSnippet&quot; class=&quot;csharpcode&quot;&gt;&lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;namespace&lt;/span&gt; KunalChowdhury.Helpers&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using&lt;/span&gt; System.IO.IsolatedStorage;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;#160;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;class&lt;/span&gt; StorageHelper&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;bool&lt;/span&gt; StoreSetting(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; key, &lt;span class=&quot;kwrd&quot;&gt;object&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;value&lt;/span&gt;)&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;if&lt;/span&gt; (IsolatedStorageSettings.ApplicationSettings.Contains(key))&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IsolatedStorageSettings.ApplicationSettings[key] = &lt;span class=&quot;kwrd&quot;&gt;value&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;#160;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IsolatedStorageSettings.ApplicationSettings.Add(key, &lt;span class=&quot;kwrd&quot;&gt;value&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;#160;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; T GetSetting&amp;lt;T&amp;gt;(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; key, T defaultVal = &lt;span class=&quot;kwrd&quot;&gt;default&lt;/span&gt;(T))&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;if&lt;/span&gt; (IsolatedStorageSettings.ApplicationSettings.Contains(key))&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; (T)IsolatedStorageSettings.ApplicationSettings[key];&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; defaultVal;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;#160;&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;void&lt;/span&gt; RemoveSetting(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; key)&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;if&lt;/span&gt; (IsolatedStorageSettings.ApplicationSettings.Contains(key))&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IsolatedStorageSettings.ApplicationSettings.Remove(key);&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alteven&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;!--CRLF--&gt;      &lt;pre class=&quot;alt&quot;&gt;}&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I hope, this optimized code will help you to better utilize your data in Isolated Storage Settings. Don’t forget to check out my other Windows Phone related articles.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Connect with me over &lt;a href=&quot;http://twitter.com/kunal2383&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;http://facebook.com/blog.kunal&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt; and Google+. Subscribe to my blog’s RSS feed and Email Newsletter to get immediate updates about my posts in your inbox. Happy Coding. Cheers.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/2529087273242498163'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/2529087273242498163'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2014/08/storagehelper-for-windows-phone.html' title='StorageHelper - For Windows Phone + Silverlight app developers'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPW6vcum4YdalmxJqzDwmm5M2I_nferrSZ5_E5txtvqkrOEE-FsxHKMae9nhkoG-h9KlEFfCpuQERVIiqg4TPqL1daaXKBzCf5dqZBwNvdzKBSuJCF79aoHdlhr7c-h5S3INNKfTtXdXM/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-1549753289085670161</id><published>2014-08-01T08:10:00.002+05:30</published><updated>2023-06-12T06:29:18.730+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="CodeProject"/><category scheme="http://www.blogger.com/atom/ns#" term="CSharp"/><category scheme="http://www.blogger.com/atom/ns#" term="DZone"/><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>How to create an Excel file using Silverlight and C-Sharp?</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkxeQzr60gQgSsoiDGtefdmAKR4ltomgqTtsWGiZL3aOTeagXj66ymZibmnoBmFw068mOXs9_gsGMIDtEfDhHwdcKvN7EtuPKWQ7OiJLqRJttfg40jPfWE6-k5lFNavtSE5vcrsHhgyUY/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;Sometime we need to export data as Excel report. This can be a plain Console application or a high end desktop and/or web application. You can of course do this using plugins/add-ons but what if you don’t have permission to use any 3rd party assemblies in your application?&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Okay, in this post we are going to discuss this with help of a simple Silverlight &amp;amp; C# application but logic will be same in other platforms/technologies too. Keep reading.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisnodgV3R6avvSh9uMfvV1ViCSya4zw9l9ZnG-BRM1oODGfUz_KRnLu3_fM5aHaVo-Rcz9DCvvMWwhwc_8UydOY5kqsZaTnNipqCVWEYHt1Z4n1KpSmVeI8SPsWpIopSFaQxL4HvYr5G0/?imgmax=800&quot; class=&quot;postImage&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Current days, it’s easy to create Excel file as it can read XML file format and view it as Excel. XML based Excel file uses a template to recognize it as Excel format. The tag “&lt;strong&gt;&amp;lt;?mso-application profid=&amp;quot;Excel.Sheet&amp;quot;?&amp;gt;&lt;/strong&gt;” does this thing intelligently. The “&lt;strong&gt;Workbook&lt;/strong&gt;” tag tells it to create a Workbook and the “&lt;strong&gt;Worksheet&lt;/strong&gt;” tag tells it to create a Worksheet. In the worksheet, you can create table using the “&lt;strong&gt;Table&lt;/strong&gt;” tag to represent your data into it.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The “&lt;strong&gt;Table&lt;/strong&gt;” tag consists of few “&lt;strong&gt;Row&lt;/strong&gt;” and “&lt;strong&gt;Cell&lt;/strong&gt;” tags to represent the data in tabular format. Now we just have to create rows and cells specifying proper data type which can be string, number etc. Check out the below code snippet where we are populating the data in a tabular format by using the rows and cells in a StringBuilder object and inserting the same in an Excel Template to create the Excel file. As we are using Silverlight, we are reading the excel file template (Data.txt) from the resource and then replacing the predefined &lt;strong&gt;$$ROW_DATA$$&lt;/strong&gt; tag with the string from the StringBuilder object.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div id=&quot;codeSnippetWrapper&quot;&gt;&lt;div id=&quot;codeSnippet&quot; class=&quot;csharpcode hscroll&quot;&gt;
&lt;pre&gt;
private void OnExportToExcel(object sender, RoutedEventArgs e)
{
    var tableData = new StringBuilder();
    
    // populate the data in each cell of the rows
    for (var i = 0; i &amp;lt; 5; i++)
    {
        tableData.Append(&amp;quot;&amp;lt;Row ss:AutoFitHeight=&amp;quot;0&amp;quot;&amp;gt;&amp;quot;);
        tableData.Append(&amp;quot;&amp;lt;Cell&amp;gt;&amp;lt;Data ss:Type=&amp;quot;String&amp;quot;&amp;gt;&amp;quot; + Persons[i].Fname + &amp;quot;&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;&amp;quot;);
        tableData.Append(&amp;quot;&amp;lt;Cell&amp;gt;&amp;lt;Data ss:Type=&amp;quot;String&amp;quot;&amp;gt;&amp;quot; + Persons[i].Lname + &amp;quot;&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;&amp;quot;);
        tableData.Append(&amp;quot;&amp;lt;Cell&amp;gt;&amp;lt;Data ss:Type=&amp;quot;String&amp;quot;&amp;gt;&amp;quot; + Persons[i].City + &amp;quot;&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;&amp;quot;);
        tableData.Append(&amp;quot;&amp;lt;Cell&amp;gt;&amp;lt;Data ss:Type=&amp;quot;Number&amp;quot;&amp;gt;&amp;quot; + Persons[i].Age + &amp;quot;&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;&amp;quot;);
        tableData.Append(&amp;quot;&amp;lt;/Row&amp;gt;&amp;quot;);
    }
    
    // read the excel file template from the resource
    using (var stream = Application.GetResourceStream(new Uri(&amp;quot;/Demo;component/Data.txt&amp;quot;, 
                                                                UriKind.Relative)).Stream)
    {    
        using (var streamReader = new StreamReader(stream))
        {
            // read the template and replace the table data to the specific portion of it
            var template = streamReader.ReadToEnd();
            template = template.Replace(&amp;quot;$$ROW_DATA$$&amp;quot;, tableData.ToString());
    
            SaveFileDialog dialog = new SaveFileDialog();
            dialog.Filter = &amp;quot;Excel File (*.xml)|*.xml&amp;quot;;
    
            if (dialog.ShowDialog() == true)
            {
                using (var fileWriter = new StreamWriter(dialog.OpenFile()))
                {
                    // write the data and save it as excel file
                    fileWriter.Write(template);
                }
            }
        }
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Later save the whole string as a File in local system. As it was Silverlight application, we used &lt;strong&gt;SaveFileDialog&lt;/strong&gt; to create the stream. Remember that, though the demonstration was done using Silverlight and C#, but the implementation is same in all other technologies too. If you understand the Excel File template and it’s above implementation to structure the data, you will not face any issues else where.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here is the simple Excel file template that we used in this demonstration, but we can further study the Excel file structure to add various other options, settings and styles:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Excel File Template&quot; alt=&quot;Excel File Template&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYpcVn23uohcvdEE28y5a1YIDaZdR38nw3iXj6rbIq4Os_N65rdno2uQyZ62M-pXEtc9nvJ66UCp8W8ryGFbNPQ5r7Dzl4FHTaitAmNx_XWPzgE3-F4Fmyv1rcQUtc8Ab-l8atK5NWWok/?imgmax=800&quot; class=&quot;postImage&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Keeping an article simple, always help the readers to understand it easily and thus this post with a simple demonstration. If you further want to learn about adding styles in Excel sheet that we created, stay tuned to my blog to read the next post. Till then, happy coding.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Don’t forget to connect with me on &lt;a href=&quot;http://twitter.com/kunal2383&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;http://facebook.com/blog.kunal&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt; and Google+. Also subscribe to my blog’s RSS feed and email newsletter to get updates of new articles published in my blog.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/1549753289085670161'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/1549753289085670161'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2014/08/programatically-create-excel-file.html' title='How to create an Excel file using Silverlight and C-Sharp?'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkxeQzr60gQgSsoiDGtefdmAKR4ltomgqTtsWGiZL3aOTeagXj66ymZibmnoBmFw068mOXs9_gsGMIDtEfDhHwdcKvN7EtuPKWQ7OiJLqRJttfg40jPfWE6-k5lFNavtSE5vcrsHhgyUY/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-5341518503795177516</id><published>2014-02-14T08:00:00.000+05:30</published><updated>2014-02-14T08:00:03.218+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="Win8Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="WPDev"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><category scheme="http://www.blogger.com/atom/ns#" term="XAML"/><category scheme="http://www.blogger.com/atom/ns#" term="XAMLTips"/><title type='text'>Inheritance in XAML Styles</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp5L1jXbVJ6Ozy1UYPPISDM29hknKpSBEmRBvIZVKKXLxsBGCDdSH09kL95fAc7CMe7K6ZKhx5X6bfU0bRJ5lHbiVfUmreasqVbzLvPPqFd836OXWKyl6BJXoyesUN_OZKFI-_19nQ6Fs/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;Style inheritance in XAML? Sounds funny? No. If we have inheritance in classes, CSS styles; then why not in XAML styles? There are many such occasions when we need to copy the same style in multiple templates/styles of a control.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In this post, we will learn how to use a single piece of style and use it in other place to inherit the common styling. If you are using XAMLs excessively, this might be a very good topic for you.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you are a XAML designer and/or building a lot of controls in XAML, you might have used the common styles in all the control templates in order to provide the similar look &amp;amp; feel across your controls. In OOPs concept we already learnt about inheritance and if you worked on CSS styles, you might have done that too. In XAML also, we can use the same thing to declare a base style and use it in all places where we need it.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;It’s not a new thing but I have observed that, many people are unaware of this. Hence, thought to share this trick with you in case if you don’t know or forget about it, this post will help you next time when you need inheritance in your XAML.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To implement this, just create a base style with a &lt;strong&gt;Key&lt;/strong&gt; name and a proper &lt;strong&gt;TargetType&lt;/strong&gt;. Make sure to set both of them properly. Then list down all the common property values using &lt;strong&gt;&amp;lt;Setter/&amp;gt;&lt;/strong&gt; tag as shown in the first code snippet below:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;XAML Style Inheritance&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;XAML Style Inheritance&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZaodcEnmEU7EdvAJOann-wDHd3MME-XjA-eIb7KcFu5EvEOngoMOInM8Nv3Nn2CnykJLi0ZQKqPtjStEr12W4fBQNlXw1AlVTUYYLu_9PmO4QdNhZqloDKHJq0hwElieFxc58EiQzA2U/?imgmax=800&quot; width=&quot;642&quot; height=&quot;337&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Now when you want to use that base style in a different style (of same &lt;strong&gt;TargetType&lt;/strong&gt;), just call the inheritance by setting the base style using &lt;strong&gt;BasedOn&lt;/strong&gt; attribute. The value of it should be the &lt;strong&gt;Key&lt;/strong&gt; name as a &lt;strong&gt;StaticResource&lt;/strong&gt; as shown in the second code snippet above (highlighted).&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;That’s it! All the common styles will now inherit to the derived style and you are good to go without copying the same thing again and again. Multiple and Multilevel inheritance are supported in XAML styles. So, keep on using them. Cheers.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In case you have any specific questions related to this topic, drop a line below and I will try to answer you as soon as possible. Also, I am available on &lt;a href=&quot;http://twitter.com/kunal2383&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; and &lt;a href=&quot;http://facebook.com/blog.kunal&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt;. Connect with me there to get my updates. Don’t forget to ask your queries.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/5341518503795177516'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/5341518503795177516'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2014/02/inheritance-in-xaml-styles.html' title='Inheritance in XAML Styles'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp5L1jXbVJ6Ozy1UYPPISDM29hknKpSBEmRBvIZVKKXLxsBGCDdSH09kL95fAc7CMe7K6ZKhx5X6bfU0bRJ5lHbiVfUmreasqVbzLvPPqFd836OXWKyl6BJXoyesUN_OZKFI-_19nQ6Fs/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-2492112574614154094</id><published>2014-01-06T21:25:00.000+05:30</published><updated>2014-01-06T21:30:26.039+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone"/><category scheme="http://www.blogger.com/atom/ns#" term="WP7DEV"/><category scheme="http://www.blogger.com/atom/ns#" term="WP7Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="WP8Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="WP8Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="WPDev"/><title type='text'>Simplest way to Encrypt and Decrypt of data in Windows Phone apps</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUwP-oSLd3-YH0O005FvtDrLD7BmvKDRZXQyFF8CiEx7ZwSVrnT-bEmPzM_zf5ef-tjRLgHuK47MnoP3S2dNabmQmoRbgWO8YsVAEubaiXFK6ugJmNqFsyldi2x40rAscObj6NWAq2ho4/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;Sometime we need to provide an encryption mechanism to protect user data in phone and/or sharing the data over internet to a database. Data security should be always maintain by a developer to protect the content of the application that the user enters.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you are building an app and looking for some way to implement the mechanism, here is a wrapper class for you to do encryption and decryption of a string literal easily.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXPnFHlz6Qj1BXAiUN32MQDhwdo5DyRv_4nvQK_bjqRlM03KNO5y9PQXfzPCH9rX-Ktoh319q1civgScrPVTc1vrv7gxXP-7TUe2MXhPksDgIZvB50mh8nZA8WlUvAYYurMRE7p97fHyI/?imgmax=800&quot; width=&quot;698&quot; height=&quot;171&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Microsoft provides a static class named “&lt;strong&gt;ProtectedData&lt;/strong&gt;” which is part of “&lt;strong&gt;System.Security.Cryptography&lt;/strong&gt;” namespace, provides a way to access the Data Protection API (DPAPI) available in Microsoft Windows 2000 and later operating systems. This also works in Windows Phone operating system. The class exposes two APIs named &lt;strong&gt;Protect&lt;/strong&gt; and &lt;strong&gt;Unprotect&lt;/strong&gt; which can be used to encrypt and decrypt users data such as username, passwords, card information, pins etc.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In one of my app “&lt;a href=&quot;http://www.windowsphone.com/s?appid=f99556f3-d620-4805-8cb7-64e86635d0c8&quot; target=&quot;_blank&quot;&gt;Password Locker&lt;/a&gt;” for Windows Phone, I already used this class to keep every details of user in a strong encrypted format with 256-bit Encryption Key. If you are also building any app and want to use the same API, you can use the following code snippets which is a wrapper above the &lt;strong&gt;ProtectedData&lt;/strong&gt; class to help you easily encrypt and decrypt string literals with your custom private encryption key.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here is the whole code snippet which you can use but make sure to change the encryption key (a sample provided here) with a strong, unbreakable string combination of letters, numbers and special characters:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div id=&quot;codeSnippetWrapper&quot;&gt;  &lt;pre id=&quot;codeSnippet&quot; class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;namespace&lt;/span&gt; KunalChowdhury.Services&lt;br /&gt;{&lt;br /&gt;    &lt;span class=&quot;kwrd&quot;&gt;using&lt;/span&gt; System.Security.Cryptography;&lt;br /&gt;    &lt;span class=&quot;kwrd&quot;&gt;using&lt;/span&gt; System.Text;&lt;p&gt;&amp;#160;&lt;/p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;class&lt;/span&gt; EncryptionService&lt;br /&gt;    {&lt;br /&gt;        &lt;span class=&quot;rem&quot;&gt;// enter your private encryption key&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;rem&quot;&gt;// this should be combination of letters, numbers and special characters&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;kwrd&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; EncryptionKey = &lt;span class=&quot;str&quot;&gt;&amp;quot;My3ncRYpt10nK3y&amp;quot;&lt;/span&gt;;&lt;p&gt;&amp;#160;&lt;/p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;byte&lt;/span&gt;[] GetToken()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; Encoding.UTF8.GetBytes(EncryptionKey);&lt;br /&gt;        }&lt;p&gt;&amp;#160;&lt;/p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;byte&lt;/span&gt;[] Encrypt(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; text)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; ProtectedData.Protect(Encoding.UTF8.GetBytes(text), GetToken());&lt;br /&gt;        }&lt;p&gt;&amp;#160;&lt;/p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; Decrypt(&lt;span class=&quot;kwrd&quot;&gt;byte&lt;/span&gt;[] encrptedText)&lt;br /&gt;        {&lt;br /&gt;            var decryptedBytes = ProtectedData.Unprotect(encrptedText, GetToken());&lt;br /&gt;            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; Encoding.UTF8.GetString(decryptedBytes, 0, decryptedBytes.Length);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here the &lt;strong&gt;GetToken()&lt;/strong&gt; method will return you a byte array of your special &lt;strong&gt;EncryptionKey&lt;/strong&gt; which is only known to the application. You just have to pass the plain text to the method &lt;strong&gt;Encrypt()&lt;/strong&gt; to encrypt the string and get a byte array to store in your database. When you want to retrieve it and show it to the user, call the &lt;strong&gt;Decrypt()&lt;/strong&gt; method of the class by passing the encrypted byte array. This will return you the original string literal that the user actually entered.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Implementing this in your application, you and your user will be sure that the data is safe from unauthenticated access and stored in completely encrypted format. You are free to use the above code in your applications. If used, just drop a small line below in the comment section with the name and link of your application.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Thanks for reading this blog. I hope that it will help you in protecting user’s data. Don’t forget to subscribe to my blog and connect with me on &lt;a href=&quot;http://twitter.com/kunal2383&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;http://facebook.com/blog.kunal&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt; to get regular updates. Happy coding. Cheers.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/2492112574614154094'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/2492112574614154094'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2014/01/data-security-in-windows-phone.html' title='Simplest way to Encrypt and Decrypt of data in Windows Phone apps'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUwP-oSLd3-YH0O005FvtDrLD7BmvKDRZXQyFF8CiEx7ZwSVrnT-bEmPzM_zf5ef-tjRLgHuK47MnoP3S2dNabmQmoRbgWO8YsVAEubaiXFK6ugJmNqFsyldi2x40rAscObj6NWAq2ho4/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-5155770704541879836</id><published>2013-12-23T20:19:00.000+05:30</published><updated>2013-12-23T20:19:54.059+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="SilverlightTips"/><category scheme="http://www.blogger.com/atom/ns#" term="Telerik"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><category scheme="http://www.blogger.com/atom/ns#" term="XAML"/><title type='text'>How to set no. of columns in Telerik’s RadDiagramToolbox?</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 5px 20px 5px 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8QnkQpDBIiM10rG0EFGynUNc-Y7vnfTd4pLmXY3JufV9sDUJPPkGLPbtafMJdflPDPlVR2PkVuS0MGCypXN-tR08XEg7O_LsKqEVsgQwrb7Y-fb01KcdCN702XoHxOZjHSXuQBPhCDUM/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;If you are working on Silverlight and/or WPF project and using Telerik RadControls library, you might be aware of RadDiagram and RadDiagramToolbox. When you add gallery items in RadDiagramToolbox, by default it comes in three columns.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In some business scenario, you might want to increase or decrease the no. of columns in the RadDiagramToolbox. This small blog post will help you in this.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The default three column toolbox eats a big screen space and sometime just an one or two column is more than sufficient to show to the user. The control directly does not exposes any properties or methods to configure the no. of columns to show but you can surely configure it by editing the template of the &lt;strong&gt;RadDiagramToolboxGroup&lt;/strong&gt;. Here is a screenshot of the basic layout:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;3-columns view&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 5px auto; display: block; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;3-columns view&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX4f_2913TvKxvTerDrsAemNFzs_06fJhy9HP-9-SOXoyv86ydmqD3Ktt6eDxUWY66GLjCSH1XZgu86cfcq89E0ATbzppkbnDT82ePiOr8FQBdWVkB92LBLa1K1h5nCf8rsWLYZreH6uc/?imgmax=800&quot; width=&quot;399&quot; height=&quot;441&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you want to modify the column count in your &lt;a href=&quot;http://www.kunal-chowdhury.com/search/label/Telerik&quot; target=&quot;_blank&quot;&gt;Telerik&lt;/a&gt;’s RadDiagramToolbox, just copy the below code in your XAML page and change the column count appropriately (in our case, we set it to 1 “one”). Let’s understand how this has been implemented.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In the &lt;strong&gt;RadDiagramToolboxGroup&lt;/strong&gt; style, create the ItemsPanel template with a RadUniformGrid control which supports setting the no. of columns. Setting &lt;strong&gt;Columns=”x”&lt;/strong&gt; attribute will set “&lt;strong&gt;x&lt;/strong&gt;” nos. of columns in the RadDiagramToolbox control, where “&lt;strong&gt;x&lt;/strong&gt;” is a numeric positive integer.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here is the XAML of the template for your reference:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div id=&quot;codeSnippetWrapper&quot;&gt;  &lt;pre id=&quot;codeSnippet&quot; class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Style&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;TargetType&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;telerik:RadDiagramToolboxGroup&amp;quot;&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Setter&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;Property&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;ItemsPanel&amp;quot;&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Setter.Value&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ItemsPanelTemplate&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;telerik:RadUniformGrid&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;VerticalAlignment&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;Top&amp;quot;&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;Columns&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ItemsPanelTemplate&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Setter.Value&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Setter&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Style&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here are two screenshots of the same with number of columns set as 2 (two) and 1 (one) respectively:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;img title=&quot;2-columns view&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 5px 20px 5px 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;2-columns view&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7W5v0T6ORLIGTWjCRgbE98R2OcsG1pvzBZ6cN6hFzL31KEk7CPsDI37svIMfDd7xNX0czgddHANB_14zlMMBCwjkBJPJ2vYwspS4xLfYnblHFk9NwZAPmJ2MS3dr7bOOa58hpA8ajUtk/?imgmax=800&quot; width=&quot;322&quot; height=&quot;441&quot; /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;img title=&quot;1-column view&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 5px 20px 5px 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;1-column view&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-VC_xiT8fgZJll-ATYjzlUgjMQxvuzH9zPfsRhkulXITXsxCO1uCfXQd4EgvG5JcSuUCUzTtJarh0HpflyfAc2f9cIpPrPgVFPbmhmGlwCvO5SDk4xvxVRXKQMXD6RKyWJteUyR7S-tg/?imgmax=800&quot; width=&quot;239&quot; height=&quot;441&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I hope, this small trick will allow you to configure the columns in your RadDiagramToolbox control. Not only this, you will be now able to reconfigure it dynamically based on user’s input. That’s your business logic.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Thanks for reading this trick. Drop a line below if that helps. Connect with me on &lt;a href=&quot;http://twitter.com/kunal2383&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; and &lt;a href=&quot;http://facebook.com/blog.kunal&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt; to get the updates on articles and technical stuffs. Cheers.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/5155770704541879836'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/5155770704541879836'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2013/12/how-to-set-no-of-columns-in-teleriks.html' title='How to set no. of columns in Telerik’s RadDiagramToolbox?'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8QnkQpDBIiM10rG0EFGynUNc-Y7vnfTd4pLmXY3JufV9sDUJPPkGLPbtafMJdflPDPlVR2PkVuS0MGCypXN-tR08XEg7O_LsKqEVsgQwrb7Y-fb01KcdCN702XoHxOZjHSXuQBPhCDUM/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-4417354469873626440</id><published>2013-11-12T07:00:00.000+05:30</published><updated>2013-11-12T07:00:00.818+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="News"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="Win8Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="WPDev"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><category scheme="http://www.blogger.com/atom/ns#" term="XAML"/><title type='text'>Now grab the Free version of XAML Spy (Express)</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAbncXoWCFcsvTn44rpHJ1CFiGcECt20eanYeST6vCSLZrINIwFAkDga04i2KQEXF4k3vCcOye1PUyMtYHXxn5L3v5qLTPukWKjbjMiRLz5eoDYJqadVMcI8YU4o5GtS1npcFcxUU5yXU/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;XAML Spy is the visual runtime inspector for Silverlight, WPF, Windows Phone and Windows 8 Store applications which provides direct access to UI visual tree, runtime UI modifications to check/set different properties temporarily, monitor events, extract package contents and much more.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;With the release of XAML Spy version 2, the company introduced a light weight Free version for the XAML designers/developers to play with their XAML files. Read more to grab your copy.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Like IE developer toolbar (for HTML/CSS), XAML Spy provides you access to visual tree and/or automation tree of XAML applications where you can modify the properties to check the look in runtime. You can also monitor the events, extract the complete XAML, explore application package content, explore isolated storage, do remote debugging and many other things of your Silverlight, WPF, Windows Phone and Windows 8 Store applications.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Basically, &lt;a href=&quot;http://xamlspy.com/learn/xaml-spy-express&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;XAML Spy&lt;/a&gt; is a commercial application but with the release of version 2 of the product, the company also released a Express version which is Free for the developers and designers with limited functionalities. The product is available as both standalone application and Visual Studio extension.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h2&gt;Comparison Chart&lt;/h2&gt;&lt;p&gt;Here is the complete comparison chart of the features of Express Edition (Free) and Commercial version of XAML Spy:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Comparison Chart of XAML Spy (Express and License)&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto 5px; border-left: 0px; display: block; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Comparison Chart of XAML Spy (Express and License)&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWvyOowYQDthgu66eShanz7DMe-dmMZb3eapvMvTmsSBj0EYWjA_5r9650j-wWFhB2EmJJap2Xdw8WP3v_zvKoIIUDJwUEKVTcrkEECetmQ3Ofe9-L6ksAnT62P18fMLyG-wpng07Nk6I/?imgmax=800&quot; width=&quot;623&quot; height=&quot;463&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;When installing XAML Spy for the first time, you can evaluate the product for a limited period. During the evaluation period you have access to all features of XAML Spy. Once the evaluation period has expired, XAML Spy will automatically switch to the XAML Spy Express edition, unless you purchase a license.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;This is really a very good tool for all Silverlight, WPF, Windows Phone and Windows 8 Store application/game developers and designers. If you have not tried it yet, &lt;a href=&quot;http://xamlspy.com/learn/xaml-spy-express&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;download the free Express Edition&lt;/a&gt; now.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/4417354469873626440'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/4417354469873626440'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2013/11/download-xaml-spy-express.html' title='Now grab the Free version of XAML Spy (Express)'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAbncXoWCFcsvTn44rpHJ1CFiGcECt20eanYeST6vCSLZrINIwFAkDga04i2KQEXF4k3vCcOye1PUyMtYHXxn5L3v5qLTPukWKjbjMiRLz5eoDYJqadVMcI8YU4o5GtS1npcFcxUU5yXU/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-1515773804082699169</id><published>2013-10-29T07:00:00.004+05:30</published><updated>2021-07-26T16:14:20.777+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="WP7DEV"/><category scheme="http://www.blogger.com/atom/ns#" term="WP8Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="WPDev"/><title type='text'>WPDev Tips: How to pass an object to WP Navigation Service?</title><content type='html'>&lt;p&gt;&lt;img title=&quot;&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiISuBIE6rAUCjWMJklKqE0SVEFGUHvWm61dikeok33jxoFMMAn1q32zIioFzZVjbt0vaD-aUnYgoVE5FR-x9twVj_Kfom9gidPnqgmK1bAkYOyrnH_dZRTjG0sBt8ayzWSCEWf0vlp1Bo/?imgmax=800&quot; width=&quot;100&quot; align=&quot;left&quot; height=&quot;100&quot; /&gt;&lt;/p&gt;&lt;p&gt;While working on an application last weekend, I was in need to pass an object as query string parameter to the other page of my Windows Phone application. &lt;a href=&quot;http://www.kunal-chowdhury.com/2011/06/windows-phone-7-mango-tutorial-6.html&quot; target=&quot;_blank&quot;&gt;NavigationService&lt;/a&gt; does not allow you to pass any complex object.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Then I found a cool idea by which you will be able to send the whole object to the other page. In this blog post, I am going to share you the trick.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div class=&quot;postImage&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The sealed class &lt;strong&gt;NavigationService&lt;/strong&gt; present under &lt;strong&gt;System.Windows.Navigation&lt;/strong&gt; namespace provides methods and events to support navigation from one page to another inside Silverlight and Windows Phone applications. As the class is &lt;strong&gt;Sealed&lt;/strong&gt;, you can not extend it directly to implement your functionalities.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;Navigate(…)&lt;/strong&gt; method of &lt;a href=&quot;http://www.kunal-chowdhury.com/2011/06/windows-phone-7-mango-tutorial-6.html&quot; target=&quot;_blank&quot;&gt;NavigationService&lt;/a&gt; only takes one parameter of type Uri where you can pass strings as part of query string parameters.This is simple if you are passing few strings as query string parameter value to the other page. But think about a scenario where you have to pass a huge chunks of data or an object. The same happened with me last weekend while building a Windows Phone application and I had to send the whole object to other page.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The workaround to this problem is assigning a static/shared variable or using the Application State to pass value from one page to other. But hold on… do we have any other alternative to that or can Navigation Service itself handle it? To answer your query, I will first say “&lt;em&gt;&lt;u&gt;No, you can not do this with Navigation Service&lt;/u&gt;&lt;/em&gt;” but secondly “&lt;em&gt;&lt;u&gt;Yes, you can do so&lt;/u&gt;&lt;/em&gt;”. Huh!!! Isn’t it a contradictory answer of my own reply? Okay, let me clarify what I said here first.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;!-- blogPostAdZone --&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div class=&quot;adsBetweenPosts&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;NavigationService&lt;/strong&gt; does not allow you to pass a complex object or a complex data type as part of query string parameter. You can not even extend it using inheritance because it is a sealed class. But you can extend the class using an Extension method and do whatever you want to play with it.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Let’s see the extension method to implement our own NavigationService method where we will be able to pass a&amp;#160; complex data type to the Navigate(…) method:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Extension method to pass data object as part of Windows Phone Navigation Service&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Extension method to pass data object as part of Windows Phone Navigation Service&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg13bWfvBM9MewY0MHXaNaLIBLaAdBmfK6ddyS0M0SlBbBIVb46CuEY2MUVz5KNVhay8s5G9dMQrERiz1KP3745lSoWbydtMfiJAKh_cRp-yEWDWAjAlUKZVvhI3hekrkTDFu75WG0wHPE/?imgmax=800&quot; width=&quot;650&quot; height=&quot;89&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here the first parameter says that, it is an extension method of NavigationService class, the second parameter takes the URI of the page where we want to navigate and the third parameter takes the data object. Here please note that, you don’t have to pass an instance of NavigationService as part of the first parameter because it is an extension method of it. You just have to pass the source and the data.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Calling the Windows Phone Navigation Service to pass data object along side page URI&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Calling the Windows Phone Navigation Service to pass data object along side page URI&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsHRxUbDvTZ0z_M-2jgoTzVlrDDSi2CFgk8vzyQHt2yx_U_mPtrbFxDhViNi8o4h4F6X8xqh-1MTXfCFtpGR1zp72LImqQSj_xkDcjsPyOOtxDC9-gHWMkNgyOywKNqw4ySXKDZERkXIU/?imgmax=800&quot; width=&quot;650&quot; height=&quot;110&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As stated earlier, call the &lt;strong&gt;NavigationService.Navigate(…)&lt;/strong&gt; method passing the URI of the page and the object that you want to send to the destination page. Here is a sample code snippet for you to visualize it clearly:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Passing the data object to Windows Phone Navigation Service&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Passing the data object to Windows Phone Navigation Service&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPmL1QrgGS3bVnOkKBdD0f234H9aW1VoTnRkFnE_H6Fxp_Qx8QQinJxJbJSTqnh7DBXpFs5pCvJ-1mAhayOEJBziU6iL4twxLQU7MollkagLSlAOK1_3Reo6pj7_tkbBoTl3SScY_2wDg/?imgmax=800&quot; width=&quot;650&quot; height=&quot;87&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Now once you are in the destination page, instead of calling &lt;strong&gt;NavigationContext&lt;/strong&gt; to get the query string parameter value, you can call the &lt;strong&gt;GetNavigationData()&lt;/strong&gt; method which is again an extension method of the class &lt;strong&gt;NavigationService&lt;/strong&gt;. Calling the method will return you the passed object. Here is a code snippet of the same:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;Retrieve object data from Navigation Service in Windows Phone&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 20px 5px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Retrieve object data from Navigation Service in Windows Phone&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRrWW0vIEl1lWIfOgGT-T9wL7WqPsLlh5rqrlttco4pCoWeQfmy202X0gf0vhmihBU7_xXqMFAcENZZFBjI4rOxAULpUHfbD59NBdAXQAnXxjcm9h9JeXlgceSxWk6qUaW6EnlQxCfDaw/?imgmax=800&quot; width=&quot;650&quot; height=&quot;70&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As per your requirement, you can keep the data object in NavigationService as long as you want or you can nullify it once you retrieve it. This way you will be able to use the &lt;strong&gt;NavigationService&lt;/strong&gt; and pass objects to second page in a completely cleaner way.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div class=&quot;adsBetweenPosts&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here is my complete source code of the extension methods of my NavigationService that helped me in many way during my whole application:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div id=&quot;codeSnippetWrapper&quot; class=&quot;hscroll&quot;&gt;  &lt;pre&gt;
public static class Extensions
{
    private static object Data;

    /// &amp;lt;summary&amp;gt;
    /// Navigates to the content specified by uniform resource identifier (URI).
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;param name=&quot;navigationService&quot;&amp;gt;The navigation service.&amp;lt;/param&amp;gt;
    /// &amp;lt;param name=&quot;source&quot;&amp;gt;The URI of the content to navigate to.&amp;lt;/param&amp;gt;
    /// &amp;lt;param name=&quot;data&quot;&amp;gt;The data that you need to pass to the other page 
    /// specified in URI.&amp;lt;/param&amp;gt;
    public static void Navigate(this NavigationService navigationService, 
                                Uri source, object data)
    {
        Data = data;
        navigationService.Navigate(source);
    }

    /// &amp;lt;summary&amp;gt;
    /// Gets the navigation data passed from the previous page.
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;param name=&quot;service&quot;&amp;gt;The service.&amp;lt;/param&amp;gt;
    /// &amp;lt;returns&amp;gt;System.Object.&amp;lt;/returns&amp;gt;
    public static object GetNavigationData(this NavigationService service)
    {
        return Data;
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I hope, this will also help you to pass any complex value to a different page in your Silverlight and/or Windows Phone applications. Don’t forget to share your feedback and/or any other alternative that you discovered while building your own applications. In case you have any queries, drop a line to me and I will try to answer you as soon as I can.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Connect with me on &lt;a href=&quot;http://twitter.com/kunal2383&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; and &lt;a href=&quot;http://facebook.com/blog.kunal&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt; to get regular updates on Microsoft technology fronts like Silverlight, Windows Phone, Windows 8 (RT), XAML, C# and Visual Studio. Don’t forget to subscribe to my blog’s RSS feed to get regular updates of articles to your inbox.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/1515773804082699169'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/1515773804082699169'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2013/10/passing-object-to-wp-navigation-service.html' title='WPDev Tips: How to pass an object to WP Navigation Service?'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiISuBIE6rAUCjWMJklKqE0SVEFGUHvWm61dikeok33jxoFMMAn1q32zIioFzZVjbt0vaD-aUnYgoVE5FR-x9twVj_Kfom9gidPnqgmK1bAkYOyrnH_dZRTjG0sBt8ayzWSCEWf0vlp1Bo/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2452629445557820138.post-3776334195160992598</id><published>2013-10-24T07:15:00.002+05:30</published><updated>2021-07-24T22:03:08.887+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="Telerik"/><category scheme="http://www.blogger.com/atom/ns#" term="XAML"/><title type='text'>How to restrict Telerik RadDiagram within a specific viewport?</title><content type='html'>&lt;p&gt;If you are a Silverlight application developer and using &lt;a href=&quot;http://www.kunal-chowdhury.com/search/label/Telerik&quot; target=&quot;_blank&quot;&gt;Telerik&lt;/a&gt; RadDiagram control, you might have seen that you can zoom and pan the diagram control and move it to any boundary. In some scenarios, we need to restrict it to a positive quadrant.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In such case, based on your business logic, you have to restrict the diagram to some quadrant value. In this small post, we will learn how to set it’s viewport to a specific bounds.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;How to restrict Telerik RadDiagram within a specific viewport&quot; class=&quot;postImage&quot; alt=&quot;How to restrict Telerik RadDiagram within a specific viewport&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc2flT8oLXlo5lwH93V75yrAhyphenhyphenIgW6ki7TYbftP2_pDhnyblCFiPSn75kxA9KSxhMJKct0VFy4t71kVsjEu4wVB6rA1eTZDcoiLGywLg3ujKSz80EbteGbRC8kWyMcuOtSMzmEm2-8ZZQ/?imgmax=800&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Have a look into the above screenshot of the RadDiagram control. This is the default behaviour and thus you will be able to place the shapes in any quadrant location. It’s good to see such functionality in-built into the control but as per business logic, you might want to restrict the shape or the diagram control itself from the location which is in negative quadrant.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Unfortunately, the RadDiagram does not expose mechanism allowing users to restrict the viewport of the control to go negative out of the box. However, there is an easy way to achieve this requirement. You can subscribe to the &lt;strong&gt;ViewportChanged&lt;/strong&gt; event of the RadDiagram and use the native &lt;strong&gt;BringIntoView()&lt;/strong&gt; method. If you detect that the viewport will visualize negative values you can bring the &lt;strong&gt;(0, 0)&lt;/strong&gt; point of the RadDiagram into the current view port. By doing this you will restrict the users to pan or zoom the diagram so that the rulers will visualize negative values.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div class=&quot;adsBetweenPosts&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To demonstrate it, let’s have a grid with the RadDiagram and two RadDiagramRulers. By default when all the bindings are proper, you can easily check how you can move the diagram content to a negative value.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div id=&quot;codeSnippetWrapper&quot; class=&quot;hscroll&quot;&gt;  &lt;pre&gt;
&amp;lt;Grid&amp;gt;
    &amp;lt;Grid.RowDefinitions&amp;gt;
        &amp;lt;RowDefinition Height=&quot;20&quot; /&amp;gt;
        &amp;lt;RowDefinition Height=&quot;*&quot; /&amp;gt;
    &amp;lt;/Grid.RowDefinitions&amp;gt;
    &amp;lt;Grid.ColumnDefinitions&amp;gt;
        &amp;lt;ColumnDefinition Width=&quot;20&quot;/&amp;gt;
        &amp;lt;ColumnDefinition Width=&quot;*&quot;/&amp;gt;
    &amp;lt;/Grid.ColumnDefinitions&amp;gt;
    &amp;lt;telerik:RadDiagramRuler Diagram=&quot;{Binding ElementName=diagram}&quot; 
                             Placement=&quot;Top&quot; Grid.Column=&quot;1&quot;/&amp;gt;
    &amp;lt;telerik:RadDiagramRuler Diagram=&quot;{Binding ElementName=diagram}&quot; 
                             Placement=&quot;Left&quot; Grid.Row=&quot;1&quot;/&amp;gt;
    &amp;lt;telerik:RadDiagram x:Name=&quot;diagram&quot;
                        Grid.Row=&quot;1&quot;
                        Grid.Column=&quot;1&quot;
                        ScrollViewer.HorizontalScrollBarVisibility=&quot;Visible&quot;
                        ScrollViewer.VerticalScrollBarVisibility=&quot;Visible&quot;
                        IsZoomEnabled=&quot;False&quot;
                        Width=&quot;1024&quot; Height=&quot;768&quot;
                        ViewportChanged=&quot;OnDiagramViewportChanged&quot;&amp;gt;
        &amp;lt;telerik:RadDiagramShape Content=&quot;Shape 1&quot; Position=&quot;20,20&quot; /&amp;gt;
    &amp;lt;/telerik:RadDiagram&amp;gt;
&amp;lt;/Grid&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div class=&quot;adsBetweenPosts&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Now to fix the issue with a viewport boundary, subscribe to the ViewportChanged event and write your own logic (in our case, we are going to restrict it to positive quadrant) as shown below:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div id=&quot;codeSnippetWrapper&quot; class=&quot;hscroll&quot;&gt;  &lt;pre&gt;
private void OnDiagramViewportChanged(object sender, PropertyEventArgs&amp;lt;Rect&amp;gt; e)
{
    if (e.NewValue.Top &amp;lt; 0 || e.NewValue.Left &amp;lt; 0)
    {
        diagram.BringIntoView(new Rect(0, 0, e.NewValue.Width, e.NewValue.Height), false);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;And that’s it. You will not be able to drag and move your diagram canvas outside that boundary. I hope, this solution will give you an idea about track and restrict the viewport of Telerik RadDiagram control. Enjoy.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/3776334195160992598'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2452629445557820138/posts/default/3776334195160992598'/><link rel='alternate' type='text/html' href='https://www.kunal-chowdhury.com/2013/10/restrict-telerik-raddiagram-to-viewport.html' title='How to restrict Telerik RadDiagram within a specific viewport?'/><author><name>Kunal Chowdhury</name><uri>http://www.blogger.com/profile/12654622239949849381</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc2flT8oLXlo5lwH93V75yrAhyphenhyphenIgW6ki7TYbftP2_pDhnyblCFiPSn75kxA9KSxhMJKct0VFy4t71kVsjEu4wVB6rA1eTZDcoiLGywLg3ujKSz80EbteGbRC8kWyMcuOtSMzmEm2-8ZZQ/s72-c?imgmax=800" height="72" width="72"/></entry></feed>