我有FixedDocument页面,我想TextBlock放在它上面,但它可能Textblock不适合页面的高度。
所以我想从繁重的产生线TextBlock带TextWrapping,然后创建新的TextBlock,即通过安装高度,并把它页。
TextBlock有LineCount私有财产,这意味着它TextLines在包装后有,我可以以某种方式得到它。使用运行
创建TextBlock:
public TextItem(PageType pageType, Run[] runs, Typeface typeFace, double fontSize)
: base(pageType)
{
this.TextBlock = new TextBlock();
this.TextBlock.Inlines.AddRange(runs);
if (typeFace != null)
this.TextBlock.FontFamily = typeFace.FontFamily;
if (fontSize > 0)
this.TextBlock.FontSize = fontSize;
this.TextBlock.TextWrapping = TextWrapping.Wrap; //wrapping
}
Run Code Online (Sandbox Code Playgroud)
TextBlock用文本创建:
public TextItem(PageType pageType, String text, Typeface typeFace, double fontSize)
: base(pageType)
{
if (typeFace == null || fontSize == …Run Code Online (Sandbox Code Playgroud) 使用Bootstrap Dual Listbox时我遇到了一些问题(http://www.virtuosoft.eu/code/bootstrap-duallistbox/).当ListBox通过java Script填充时,它没有按预期工作.我的意思是不工作是列表没有正确填充,并且从两个列表框中传输选定的项目不是它应该工作的.不知何故,当列表由硬编码填充时,它运行良好.
这是一切工作正常的部分:
<div class="row-fluid">
<div class="container">
<select multiple="multiple" size="10" name="SelectItem" class="eItems" id="SelectItem">
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3" selected="selected">Option 3</option>
<option value="option4">Option 4</option>
<option value="option5">Option 5</option>
<option value="option6" selected="selected">Option 6</option>
<option value="option7">Option 7</option>
<option value="option8">Option 8</option>
</select>
<script type="text/javascript">
var demo2 = $('.eItems').bootstrapDualListbox({
nonselectedlistlabel: 'Non-selected',
selectedlistlabel: 'Selected',
preserveselectiononmove: 'moved',
moveonselect: false,
bootstrap2compatible : true
});
</script>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
但是当使用JavaScript填充时,它会被填充,但功能运行不正常:
来自Controller的数据收集器:
<script type="text/javascript">
function ProductChange() {
$.getJSON("/WEBAPP/MasterData/GetItems", null, function (data) {
var items;
$.each(data, …Run Code Online (Sandbox Code Playgroud) 我正在尝试本地化KnockoutJS验证插件,但我需要能够在运行中切换语言.这个插件有一个问题,但它已经超过2年了(并且仍然开放).
我只是想做的是在加载所有内容后切换验证消息的语言.这是一个例子(可以在小提琴上看到:http://jsfiddle.net/Kikketer/S6j2q/)
<input data-bind='value: phone' />
<div data-bind="text: phone"></div>
<button type='button' data-bind="click: v">Validate</button>
<button type='button' data-bind='click: switchLanguage'>Switch Language</button>
Run Code Online (Sandbox Code Playgroud)
使用以下JS:
ko.validation.configure({
registerExtenders: true
});
// If I localize right away, things work
ko.validation.localize({required: '**Required'});
var InterviewTwo = function() {
// Standard "required" validator
this.phone = ko.observable().extend({required: true});
// Group all of the validators
this.errors = ko.validation.group(this);
// Validation function
this.v = function() {
this.errors.showAllMessages();
};
// Switching languages after or before the validation …Run Code Online (Sandbox Code Playgroud) 我的最新版本有问题globalize.js.要使用它,我必须加载cldr modules和语言定义.
现在我从全球化文档中得到了这个例子:
// loading needed modules
$.get('/Scripts/cldr/supplemental/likelySubtags.json', Globalize.load);
$.get('/Scripts/cldr/main/en/numbers.json', Globalize.load);
$.get('/Scripts/cldr/main/de/numbers.json', Globalize.load);
// set current language
lobalize.locale('de-de');
Run Code Online (Sandbox Code Playgroud)
我现在的问题是本地json文件加载异步.这意味着在我的脚本尝试设置当前语言的那一刻,模块尚未加载.
现在我试着变得聪明并做到了这一点:
$.get('/Scripts/cldr/supplemental/likelySubtags.json', function (data) {
Globalize.load(data);
Globalize.locale('de-de');
});
$.get('/Scripts/cldr/main/en/numbers.json', Globalize.load);
$.get('/Scripts/cldr/main/de/numbers.json', Globalize.load);
Run Code Online (Sandbox Code Playgroud)
这将一直有效,直到我真正使用全球化格式方法.在我的HTML里面,我在一个淘汰赛绑定中使用全局化,如下所示:
<span data-bind="text: Globalize.formatNumber(SomeNumber, { maximumFractionDigits: 0 })"></span>
Run Code Online (Sandbox Code Playgroud)
现在"formatNumber"方法抛出错误,因为在绑定发生时并非所有模块都被加载.
我现在的问题是,如何同步我的JavaScript?
我正在尝试捕获使用ContinueWith和OnlyOnFaulted的任务方法抛出的异常,如下所示.但是,当我尝试运行此代码时,我得到一个未处理的异常.
因为我已经处理了异常,所以我希望该任务能够完成.但Task.Wait()运行到AggregateException.
var taskAction = new Action(() =>
{
Thread.Sleep(1000);
Console.WriteLine("Task Waited for a sec");
throw (new Exception("throwing for example"));
});
Task t = Task.Factory.StartNew(taskAction);
t.ContinueWith(x => Console.WriteLine("In the on Faulted continue with code. Catched exception from the task."+ t.Exception), TaskContinuationOptions.OnlyOnFaulted);
Console.WriteLine("Main thread waiting for 4 sec");
Thread.Sleep(4000);
Console.WriteLine("Wait of 4 secs complete..checking if task is completed?");
Console.WriteLine("Task State: " + t.Status);
t.Wait();
Run Code Online (Sandbox Code Playgroud)
如果我在下面的任务方法中处理异常,一切都会像我预期的那样正常.任务运行完成,异常被记录,等待也成功.
var taskAction = new Action(() =>
{
try
{
Thread.Sleep(1000);
Console.WriteLine("Task Waited for a sec");
throw …Run Code Online (Sandbox Code Playgroud) .net c# exception-handling task-parallel-library async-await
我正在使用Globalize jQuery插件在MVC网站的客户端上进行全球化(正确的数字和日期格式)。因此,我已经下载了该插件,并在验证js文件本身之后添加了以下javascript文件(我也曾尝试将Globalize文件放在前面,但没有任何运气):
<script src="/Scripts/globalize.js"></script>
<script src="/Scripts/jquery.validate.globalize.min.js"></script>
<script src="/Scripts/globalize/globalize.culture.da-DK.js"></script>
Run Code Online (Sandbox Code Playgroud)
但是当运行应用程序时,我得到了错误
Globalize.addCultureInfo不是函数
我不知道是什么原因
我想将任何 json 记录到 serilog 属性中。我已经阅读了很多有关 serilog 和 json 的内容,但它是结构化的 json 日志记录,带有消息模板。所以我不想记录这个,而是Log.Info("{@text}",text);想这样做:
var json = "{ \"text\": \"hello\" }"; //a json string or a Json object
Log.Info(json);
Run Code Online (Sandbox Code Playgroud)
主要区别在于,使用第一种方法时,您有一个消息模板,并且始终有一个“文本”属性。我想要具有不同结构的 json,例如如果我有:
var json = "{ \"text\": \"hello\", \"text2\": \"hello2\" }"; //a json string or a Json object
Log.Info(json);
Run Code Online (Sandbox Code Playgroud)
我想获取 2 个属性,即每个 json 属性 1 个属性,而无需定义消息模板。这可能吗?我必须实现自己的 JsonFormatter 吗?
我正在尝试返回 JObject 作为我的操作结果。我已经使用Newtonsoft.Json和JsonNetResult 的对象转换为JsonResult。对于普通对象,我使用以下语法将对象序列化为 JsonResult:
return new JsonResult
{
ContentType = "application/json",
ContentEncoding = System.Text.Encoding.UTF8,
Data = myResult,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
Run Code Online (Sandbox Code Playgroud)
这myResult是所需对象的实例,但是Newtonsoft.Json.Linq.JObject,如下所示为 JObject ( )尝试此操作,将返回无效结果,即[[[]]]:
JObject jsonObject = new JObject();
jsonObject["error"] = "invalid_id";
return new JsonResult
{
ContentType = "application/json",
ContentEncoding = System.Text.Encoding.UTF8,
Data = jsonObject,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下如何序列化 JObject?
问题:SignalR 没有OnDisconnected在我的网络服务器上触发。它非常简单,但不会触发。我试过了:
public override Task OnDisconnected(bool stopCalled) {
LogUtil.LogInfo("Disconn");
return base.OnDisconnected(stopCalled);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 SignalR 2.2.0.0 并且OnConnected工作正常。
我尝试了最后一次客户端调用的建议,以确保连接正常运行。
我搜索了所有论坛、SO、GIT 等,但没有解决我的问题。
我在Google重定向到回调方法时遇到一些问题,它引发异常:oauth状态丢失或无效。
启动文件
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<Conte>(config =>
config.UseSqlServer(Configuration.GetConnectionString("Identity")));
services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<Conte>()
.AddDefaultTokenProviders();
services.AddAuthentication()
.AddCookie("Cook")
.AddGoogle(config =>
{
config.SignInScheme = "Cook";
config.ClientId = Configuration["Authentication:Google:Client_Id"];
config.ClientSecret = Configuration["Authentication:Google:Client_Secret"];
config.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "UserId");
config.ClaimActions.MapJsonKey(ClaimTypes.Email, "EmailAddress", ClaimValueTypes.Email);
config.ClaimActions.MapJsonKey(ClaimTypes.Name, "Name");
});
services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)
AccountController.cs
[AllowAnonymous]
[HttpGet]
[Route("/api/google-login")]
public async Task LoginGoogle()
{
await HttpContext.ChallengeAsync("Google", new AuthenticationProperties() { RedirectUri = "/signin-google" });
}
[AllowAnonymous]
[HttpGet]
[Route("/signin-google")]
public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
{
var info = await _signInManager.GetExternalLoginInfoAsync();
// Sign …Run Code Online (Sandbox Code Playgroud) c# authentication google-oauth asp.net-identity asp.net-core
c# ×4
.net ×2
asp.net-mvc ×2
javascript ×2
json ×2
knockout.js ×2
asp.net ×1
asp.net-core ×1
async-await ×1
cldr ×1
google-oauth ×1
jquery ×1
json.net ×1
line-count ×1
razor ×1
seq ×1
serilog ×1
signalr ×1
textblock ×1
wpf ×1