剑道主题不会改变图表

Mat*_*ała 2 kendo-asp.net-mvc

我想更改默认的剑道 ui 主题。问题是它发生了变化,但仅适用于控件:网格等,但图表保持完全相同。

我正在捆绑中添加此样式。

bundles.Add(new StyleBundle("~/Content/kendoUi").Include(
    "~/Content/kendo/2016.1.112/kendo.common.min.css",
    "~/Content/kendo/2016.1.112/kendo.mobile.all.min.css",
    "~/Content/kendo/2016.1.112/kendo.metro.min.css"
));
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

Chr*_*rdt 5

我今天也在为同样的事情而挣扎。出于某种原因,必须通过小部件配置来设置图表的主题。

来自Kendo 客户端库文档

Kendo UI Chart 小部件带有一组预定义的主题。使用主题选项选择一个主题,如下例所示。主题名称不区分大小写。

$("#chart").kendoChart({
    theme: "blueOpal",
    //...
});
Run Code Online (Sandbox Code Playgroud)

Server-Wrappers 没有文档。但是,它将以这种方式工作:

@(Html.Kendo().Chart().Theme("blueOpal"))
Run Code Online (Sandbox Code Playgroud)

这样做的原因,似乎在这里解释

Kendo UI Gauges、Charts、Barcodes、Diagrams 和 Maps 使用多种浏览器技术来达到所需的精度和响应能力。可视化呈现为具有计算布局的矢量图形。相比之下,交互功能是使用传统的 HTML 元素构建的。因此,这些小部件的外观设置在声明性选项和传统 CSS 之间分开

如果要全局执行,则需要覆盖 kendo

var themable = ["Chart", "TreeMap", "Diagram", "StockChart", "Sparkline", "RadialGauge", "LinearGauge"];

if (kendo.dataviz) {
  for (var i = 0; i < themable.length; i++) {
    var widget = kendo.dataviz.ui[themable[i]];

    if (widget) {
      widget.fn.options.theme = "blueOpal";
    }
  }
}
Run Code Online (Sandbox Code Playgroud)