Kendo ui 如何自定义十六进制颜色代码的剑道UI编辑器?

Kendo ui 如何自定义十六进制颜色代码的剑道UI编辑器?,kendo-ui,editor,kendo-asp.net-mvc,rich-text-editor,kendo-editor,Kendo Ui,Editor,Kendo Asp.net Mvc,Rich Text Editor,Kendo Editor,我正在开发一个ASP.NETMVC应用程序,它在其中使用KendoUI。我们在它里面使用了一个剑道UI编辑器来编辑丰富的文本。它的用途如下: @(Html.Kendo().Editor() .Name("textControl-Source") .Tools(tools => tools.Clear() .Bold().Italic().Underline().Strikethrough() .FontSize().FontColor().Bac

我正在开发一个ASP.NETMVC应用程序,它在其中使用KendoUI。我们在它里面使用了一个剑道UI编辑器来编辑丰富的文本。它的用途如下:

@(Html.Kendo().Editor()
   .Name("textControl-Source")
   .Tools(tools => tools.Clear()
   .Bold().Italic().Underline().Strikethrough()
   .FontSize().FontColor().BackColor()                                                           
   .JustifyLeft().JustifyCenter().JustifyRight().JustifyFull()
   .InsertUnorderedList().InsertOrderedList().Indent().Outdent()
   .SubScript().SuperScript())
   .HtmlAttributes(new { style = "height:240px;width:98.5%", data_mintextlength = "1" })
          .Events(events => events
          .Change("mediaBoardEditNS.textControlChange")
          .Select("mediaBoardEditNS.textControlSelect")
        )
    )

有一个要求,如果我们可以通过使用十六进制代码来定制它以显示自定义颜色,就像我们在MicrosoftWord字体颜色选择器中所做的那样。我在他们的论坛上搜索了很多东西,但是没有找到任何可靠的东西。如果我遗漏了什么,请告诉我。谢谢

这不是一个确切的代码答案,因为我不是100%清楚您的确切要求。我想这可能足以让你走上正轨

如果您的需求更简单,并且只需要在backColor和foreColor工具中包含自定义颜色,那么有一种方法可以自定义可用的调色板。如中所示,您可以自定义调色板,如下所示:

<script>
$("#editor").kendoEditor({
    tools: [{
        name: "backColor",
              palette: ["#f0d0c9", "#e2a293", "#d4735e", "#65281a"],
            },
        { 
          name: "foreColor",
          palette: ["red", "green", "#d47eee", "#65281a"]
        } ]
});
</script>

$(“#编辑”).kendoEditor({
工具:[{
名称:“背景色”,
调色板:[“f0d0c9”、“e2a293”、“d4735e”、“65281a”],
},
{ 
名称:“前景色”,
调色板:[“红色”、“绿色”、“d47eee”、“65281a”]
} ]
});
然而,我不认为这正是你的要求,正如你提到的,让它像微软Word。不过我会留着它,以防万一我错了

所以,记住这一点。还可以创建自定义工具:

@(Html.Kendo().Editor()
.姓名(“编辑”)
//为简洁起见,其他设置被修剪
.Tools(Tools=>Tools
.Clear()
.CustomTemplate(ct=>ct.Template(“背景:非黄绿色”))
.CustomButton(cb=>cb.Name(“自定义”).ToolTip(“插入水平规则”).Exec(@
职能(e){
var编辑器=$(this.data(“kendoEditor”);
exec(“inserthtml”,{value:
“}); } )) )
您可以为backColor和foreColor创建一个自定义工具,该工具由其模板中的组成。使用选择器的事件,用户可以选择任何颜色或输入十六进制值,然后单击“应用”,您可以适当设置编辑器backColor/foreColor

与此类似,但是您必须调整它以在模板中工作:

        @(Html.Kendo().ColorPicker()
                .Name("hsv-picker")
                .Value("#22cc22")
                .Events(events => events
                    .Select("pickerSelect")
                    .Change("pickerChange")
                    .Open("pickerOpen")
                    .Close("pickerClose")
                )
        )

<script>
    function pickerChange(e) {
        console.log("Change in color palette :: " + e.value);
        //UPDATE EDITOR backcolor/forecolor with e.value here
    }
</script>
@(Html.Kendo().ColorPicker()
.名称(“hsv选择器”)
.价值(“#22cc22”)
.Events(Events=>Events
.选择(“选择器选择”)
.更改(“pickerChange”)
.打开(“pickerOpen”)
.Close(“pickerClose”)
)
)
函数选择器更改(e){
log(“调色板的变化::”+e.value);
//在此处使用e.value更新编辑器背景色/前景色
}

这不是一个精确的代码答案,因为我不是100%清楚您的确切要求。不过,我认为这可能足以让您走上正确的道路

如果您的要求更简单,并且只需要在backColor和foreColor工具中包含自定义颜色,则有一种方法可以自定义可用的调色板。如中所示,您可以自定义调色板,如下所示:

<script>
$("#editor").kendoEditor({
    tools: [{
        name: "backColor",
              palette: ["#f0d0c9", "#e2a293", "#d4735e", "#65281a"],
            },
        { 
          name: "foreColor",
          palette: ["red", "green", "#d47eee", "#65281a"]
        } ]
});
</script>

$(“#编辑”).kendoEditor({
工具:[{
名称:“背景色”,
调色板:[“f0d0c9”、“e2a293”、“d4735e”、“65281a”],
},
{ 
名称:“前景色”,
调色板:[“红色”、“绿色”、“d47eee”、“65281a”]
} ]
});
然而,我不认为这就是你的要求,正如你提到的,让它像微软Word一样。不过,我会留着它,以防我错了

因此,记住这一点。还可以创建自定义工具:

@(Html.Kendo().Editor()
.姓名(“编辑”)
//为简洁起见,其他设置被修剪
.Tools(Tools=>Tools
.Clear()
.CustomTemplate(ct=>ct.Template(“背景:非黄绿色”))
.CustomButton(cb=>cb.Name(“自定义”).ToolTip(“插入水平规则”).Exec(@
职能(e){
var编辑器=$(this.data(“kendoEditor”);
exec(“inserthtml”,{value:
“}); } )) )
您可以为backColor和foreColor创建一个自定义工具,该工具由其模板中的组成。使用选择器的事件,用户可以选择任何颜色或输入十六进制值,然后单击“应用”,您可以适当设置编辑器backColor/foreColor

与此类似,但是您必须调整它以在模板中工作:

        @(Html.Kendo().ColorPicker()
                .Name("hsv-picker")
                .Value("#22cc22")
                .Events(events => events
                    .Select("pickerSelect")
                    .Change("pickerChange")
                    .Open("pickerOpen")
                    .Close("pickerClose")
                )
        )

<script>
    function pickerChange(e) {
        console.log("Change in color palette :: " + e.value);
        //UPDATE EDITOR backcolor/forecolor with e.value here
    }
</script>
@(Html.Kendo().ColorPicker()
.名称(“hsv选择器”)
.价值(“#22cc22”)
.Events(Events=>Events
.选择(“选择器选择”)
.更改(“pickerChange”)
.打开(“pickerOpen”)
.Close(“pickerClose”)
)
)
函数选择器更改(e){
log(“调色板的变化::”+e.value);
//在此处使用e.value更新编辑器背景色/前景色
}