{"id":7300,"date":"2024-03-14T05:20:31","date_gmt":"2024-03-14T05:20:31","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/"},"modified":"2025-08-02T14:26:24","modified_gmt":"2025-08-02T14:26:24","slug":"how-to-implement-a-simulated-volume-control-in-wpf","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/","title":{"rendered":"WPF Volume Control Implementation"},"content":{"rendered":"<p>Creating a simulated volume control in WPF can be achieved by customizing control templates and styles. Here is a simple example:<\/p>\n<ol>\n<li>First, create a custom control in the WPF project, for example a class named AnalogVolumeControl:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">AnalogVolumeControl<\/span> : <span class=\"hljs-title\">Control<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-title\">AnalogVolumeControl<\/span>()<\/span>\r\n    {\r\n        DefaultStyleKeyProperty.OverrideMetadata(<span class=\"hljs-keyword\">typeof<\/span>(AnalogVolumeControl), \r\n            <span class=\"hljs-keyword\">new<\/span> FrameworkPropertyMetadata(<span class=\"hljs-keyword\">typeof<\/span>(AnalogVolumeControl)));\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u6dfb\u52a0\u4f9d\u8d56\u5c5e\u6027 Volume\uff0c\u7528\u4e8e\u8bbe\u7f6e\u97f3\u91cf\u503c<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-built_in\">double<\/span> Volume\r\n    {\r\n        <span class=\"hljs-keyword\">get<\/span> { <span class=\"hljs-keyword\">return<\/span> (<span class=\"hljs-built_in\">double<\/span>)GetValue(VolumeProperty); }\r\n        <span class=\"hljs-keyword\">set<\/span> { SetValue(VolumeProperty, <span class=\"hljs-keyword\">value<\/span>); }\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">readonly<\/span> DependencyProperty VolumeProperty =\r\n        DependencyProperty.Register(<span class=\"hljs-string\">\"Volume\"<\/span>, <span class=\"hljs-keyword\">typeof<\/span>(<span class=\"hljs-built_in\">double<\/span>), <span class=\"hljs-keyword\">typeof<\/span>(AnalogVolumeControl), <span class=\"hljs-keyword\">new<\/span> PropertyMetadata(<span class=\"hljs-number\">0.5<\/span>));\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Create a style template file named Generic.xaml and define the appearance style for AnalogVolumeControl.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ResourceDictionary<\/span> <span class=\"hljs-attr\">xmlns<\/span>=<span class=\"hljs-string\">\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"<\/span>\r\n                    <span class=\"hljs-attr\">xmlns:x<\/span>=<span class=\"hljs-string\">\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"<\/span>&gt;<\/span>\r\n\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Style<\/span> <span class=\"hljs-attr\">TargetType<\/span>=<span class=\"hljs-string\">\"{x:Type local:AnalogVolumeControl}\"<\/span>&gt;<\/span><span class=\"language-xml\">\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Setter<\/span> <span class=\"hljs-attr\">Property<\/span>=<span class=\"hljs-string\">\"Template\"<\/span>&gt;<\/span>\r\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Setter.Value<\/span>&gt;<\/span>\r\n                <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ControlTemplate<\/span> <span class=\"hljs-attr\">TargetType<\/span>=<span class=\"hljs-string\">\"{x:Type local:AnalogVolumeControl}\"<\/span>&gt;<\/span>\r\n                    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Grid<\/span>&gt;<\/span>\r\n                        <span class=\"hljs-comment\">&lt;!-- \u6dfb\u52a0\u97f3\u91cf\u63a7\u5236\u7684\u5916\u89c2\uff0c\u4f8b\u5982\u6a21\u62df\u97f3\u91cf\u8868\u3001\u6307\u9488\u7b49 --&gt;<\/span>\r\n                    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Grid<\/span>&gt;<\/span>\r\n                <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ControlTemplate<\/span>&gt;<\/span>\r\n            <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Setter.Value<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Setter<\/span>&gt;<\/span>\r\n    <\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Style<\/span>&gt;<\/span>\r\n\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ResourceDictionary<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Use the AnalogVolumeControl control in the MainWindow.xaml file and bind the Volume property to the volume value.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Window<\/span> <span class=\"hljs-attr\">x:Class<\/span>=<span class=\"hljs-string\">\"AnalogVolumeControlDemo.MainWindow\"<\/span>\r\n        <span class=\"hljs-attr\">xmlns<\/span>=<span class=\"hljs-string\">\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"<\/span>\r\n        <span class=\"hljs-attr\">xmlns:x<\/span>=<span class=\"hljs-string\">\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"<\/span>\r\n        <span class=\"hljs-attr\">xmlns:local<\/span>=<span class=\"hljs-string\">\"clr-namespace:AnalogVolumeControlDemo\"<\/span>\r\n        <span class=\"hljs-attr\">Title<\/span>=<span class=\"hljs-string\">\"MainWindow\"<\/span> <span class=\"hljs-attr\">Height<\/span>=<span class=\"hljs-string\">\"450\"<\/span> <span class=\"hljs-attr\">Width<\/span>=<span class=\"hljs-string\">\"800\"<\/span>&gt;<\/span>\r\n\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Grid<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">local:AnalogVolumeControl<\/span> <span class=\"hljs-attr\">Volume<\/span>=<span class=\"hljs-string\">\"{Binding Path=Volume}\"<\/span> \/&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Grid<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Window<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>By following these steps, you can create a simple analog volume control in WPF and adjust the volume based on the bound Volume property value. You can also further customize the styles and functions of the control to meet your specific needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Creating a simulated volume control in WPF can be achieved by customizing control templates and styles. Here is a simple example: First, create a custom control in the WPF project, for example a class named AnalogVolumeControl: public class AnalogVolumeControl : Control { static AnalogVolumeControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(AnalogVolumeControl), new FrameworkPropertyMetadata(typeof(AnalogVolumeControl))); } \/\/ \u6dfb\u52a0\u4f9d\u8d56\u5c5e\u6027 Volume\uff0c\u7528\u4e8e\u8bbe\u7f6e\u97f3\u91cf\u503c public double Volume [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[274,9313,9312,1928,9314],"class_list":["post-7300","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c","tag-custom-controls","tag-volume-control","tag-wpf","tag-xaml"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WPF Volume Control Implementation - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to implement a simulated volume control in WPF with custom control templates and styles. Step-by-step guide with code examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF Volume Control Implementation\" \/>\n<meta property=\"og:description\" content=\"Learn how to implement a simulated volume control in WPF with custom control templates and styles. Step-by-step guide with code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T05:20:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-02T14:26:24+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ava Mitchell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"WPF Volume Control Implementation\",\"datePublished\":\"2024-03-14T05:20:31+00:00\",\"dateModified\":\"2025-08-02T14:26:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/\"},\"wordCount\":115,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"c#\",\"Custom Controls\",\"Volume Control\",\"WPF\",\"XAML\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/\",\"name\":\"WPF Volume Control Implementation - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T05:20:31+00:00\",\"dateModified\":\"2025-08-02T14:26:24+00:00\",\"description\":\"Learn how to implement a simulated volume control in WPF with custom control templates and styles. Step-by-step guide with code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF Volume Control Implementation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WPF Volume Control Implementation - Blog - Silicon Cloud","description":"Learn how to implement a simulated volume control in WPF with custom control templates and styles. Step-by-step guide with code examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/","og_locale":"en_US","og_type":"article","og_title":"WPF Volume Control Implementation","og_description":"Learn how to implement a simulated volume control in WPF with custom control templates and styles. Step-by-step guide with code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T05:20:31+00:00","article_modified_time":"2025-08-02T14:26:24+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"WPF Volume Control Implementation","datePublished":"2024-03-14T05:20:31+00:00","dateModified":"2025-08-02T14:26:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/"},"wordCount":115,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["c#","Custom Controls","Volume Control","WPF","XAML"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/","name":"WPF Volume Control Implementation - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T05:20:31+00:00","dateModified":"2025-08-02T14:26:24+00:00","description":"Learn how to implement a simulated volume control in WPF with custom control templates and styles. Step-by-step guide with code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-simulated-volume-control-in-wpf\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"WPF Volume Control Implementation"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/7300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=7300"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/7300\/revisions"}],"predecessor-version":[{"id":152075,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/7300\/revisions\/152075"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=7300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=7300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=7300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}