小编Ala*_*ain的帖子

CSS:两个浮动div列,高度相等,右侧垂直分割

我正在尝试完成如下所示的布局:

在此输入图像描述

两个浮子:左侧的div并排放置,每个都有45%的宽度.在右边,div包含两个子部分 - 一个与div的底部对齐,另一个与顶部对齐.

如果右边的部分足够长,它们当然会在中间相遇,然后开始推出包含div的高度:

在此输入图像描述

我一直在玩人造柱,清楚:全部,溢出:隐藏,底部:0,以及我能想到的任何其他技巧,但我不能让这种行为起作用.

真正的问题似乎源于左侧和右侧div中较小的一个不扩展到容器的高度,它使用overflow:hidden来获取两者中较大者的高度.有什么想法吗?

到目前为止我所拥有的:

<div style="overflow:hidden; clear:both">
    <div id="column1" style="float: left; width:45%">
    <div id="column2" style="float: left; width:45%">
        <div style="float: left; top: 0">Content Here should sit up top</div>
        <div style="float: left; bottom: 0">Content Here should sit on bottom</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这就是它的结果,我无法在不使用固定高度的情况下将顶部和底部分开:

在此输入图像描述

谢谢你好好看看!

css css-float

5
推荐指数
1
解决办法
8749
查看次数

如何创建仅存在于ResourceDictionary上下文中的Style

如何创建仅存在于ResourceDictionary上下文中的样式,而不是在包含该ResourceDictionary的控件的上下文中?

例如,我希望能够拥有如下所示的ResourceDictionary:

<!-- ControlTemplates.xaml -->
<ResourceDictionary>
    <!-- Private Local styles used to set up the publicly usable templates -->
        <Style x:Key="TextBoxes" TargetType="TextBox">
            <Setter Property="TextWrapping" Value="Wrap" />
        </Style>
    <!-- End of Private Local Stuff -->
    <!-- Public Dictionary Resources Follow -->
    <ControlTemplate x:Key="CustomTextBox">
        <TextBox Style="{StaticResource TextBoxes}" />
    </ControlTemplate>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

然后在其他控件或窗口中,我希望能够:

<Window>
    <Window.Resources>
        <ResourceDictionary Source="ControlTemplates.xaml">
    </Window.Resources>
    <Grid>
        <!-- This Should Work -->
        <CustomControl Template="{StaticResources CustomTextBox}">

        <!-- This Should NOT Work! -->
        <TextBox Template="{StaticResources TextBoxes}">
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml dictionary .net-3.5

5
推荐指数
1
解决办法
657
查看次数

如何在弹出窗口关闭后直接使用组合框来正确设置焦点

当用户从组合框中选择值时,如果他们选择了一个值,则会触发"SelectionChanged"事件,并设置新值并且一切正常.但是,如果他们决定不更改值并单击UI上的其他位置(如他们想要编辑的文本框),则必须单击两次 - 第一次单击只需关闭组合框弹出窗口,下一次单击将关注他们想要在第一次点击时激活的元素.

如何防止组合框弹出窗口在第一次点击时劫持焦点目标?

我已经尝试过监视ComboBox_LostFocus事件,但这会在错误的时间触发.当用户单击下拉列表并显示弹出列表时,ComboBox_LostFocus事件将触发 - 它将失去焦点到它自己的下拉列表.我不想做任何改变.当用户点击然后弹出窗口关闭时,ComboBox永远不会重新获得焦点(焦点只是'丢失'到所有东西),因此这个事件是无用的.

c# wpf xaml .net-4.0

5
推荐指数
1
解决办法
6592
查看次数

当 ComboBox 不在绑定列表中时,防止将 selectedValue 设置为 null

我不太确定如何处理这个问题。我使用了一堆带有下拉值列表的组合框,我们也允许用户设置属性。(即货币=“美元、加元、欧元”)。

有时,当我们加载数据时,我们会发现该货币不在我们的列表中,例如“AUD”。在这种情况下,我们仍然希望组合框显示加载的值,并且当前选择的货币应保持“AUD”,除非用户选择更改它,在这种情况下,他们唯一的选项仍然是“USD、CAD、EUR”。

我的问题是,一旦控件变得可见,ComboBox 就会调用我的 SelectedCurrency 属性上的 setter 并将其设置为null,大概是因为当前值“AUD”不在其列表中。如何禁用此行为而不让用户可以在“货币”字段中输入他们想要的任何内容?

c# wpf xaml .net-4.0

5
推荐指数
1
解决办法
4576
查看次数

List&lt;string&gt; 和 IEnumerable&lt;string&gt; 有什么区别

这两个人似乎正在做同样的事情。我给它们计时了——知道这只是一个小例子——但它们似乎也以完全相同的速度运行。使用其中一种比另一种有好处吗?

List<string> alpha = new List<string>(new string[] { "a", "b", "c" });
foreach (var letter in alpha)
{
    Console.WriteLine(letter);
}

IEnumerable<string> _alpha = new[] {"a", "b", "c"};
foreach(var _letter in _alpha)
{
     Console.WriteLine(_letter);
}
Run Code Online (Sandbox Code Playgroud)

c#

5
推荐指数
1
解决办法
4579
查看次数

在 JSON 中找不到必需的属性“概率”。小路

我正在反序列化到以下类:

public abstract class Tail_Metrics
{
    [DataMember(Order = 1, IsRequired = true)]
    public double probability { get; set; }
    [DataMember(Order = 2, IsRequired = true)]
    public double min { get; set; }
    [DataMember(Order = 3)]
    public double max { get; set; }
    [DataMember(Order = 4, IsRequired = true)]
    public double mean { get; set; }
    [DataMember(Order = 5)]
    public double variance { get; set; }
    [DataMember(Order = 6)]
    public double skewness { get; set; }
    [DataMember(Order = 7)]
    public double …
Run Code Online (Sandbox Code Playgroud)

c# serialization json json.net

5
推荐指数
1
解决办法
8071
查看次数

有没有办法将这些几乎相同的类合并为一个?

这个问题的后续问题:为什么Nullable <T>被认为是一个结构而不是一个类?

我有两个类,基本上维护一个用户提供的值的元组与内部对象.

当用户提供的值的类型是基元时,我必须将其包装在一个Nullable<T>元组中,以便它可以在元组中采用空值.

public class BundledClass<T> where T : class
{
    private Tuple<T, object> _bundle;
    public T Value
    { 
        get { return _bundle == null ? null : _bundle.Item1; }
        set { _bundle = new Tuple<T, object>(value, internalObj); }
    }
    //...

public class BundledPrimitive<T> where T : struct
{
    private Tuple<T?, object> _bundle;
    public T? Value
    { 
        get { return _bundle == null ? null : _bundle.Item1; }
        set { _bundle = new Tuple<T?, object>(value, internalObj); …
Run Code Online (Sandbox Code Playgroud)

c# generics nullable type-constraints

5
推荐指数
1
解决办法
175
查看次数

Json.Net无法反序列化DateTime.MinValue

我尝试过DateTime.MinValue以各种可能的方式反序列化包含的Json字符串,但是当该set方法在我的对象上被调用时。日期总是从-01-01-01-更改为-01-01-02-。

被解析的Json明确包含

"inception_date": "0001-01-01T00:00:00+00:00"
Run Code Online (Sandbox Code Playgroud)

然后JsonConvert,我呼吁:

return JsonConvert.DeserializeObject<T>(json, deserializerSettings);
Run Code Online (Sandbox Code Playgroud)

T包含property:DateTime inception_date { get; set; }property 的基本结构在哪里。解串器设置如下:

deserializerSettings = new JsonSerializerSettings()
{
    DateFormatHandling = DateFormatHandling.IsoDateFormat,
    DateParseHandling = Newtonsoft.Json.DateParseHandling.None,
    DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc
};
Run Code Online (Sandbox Code Playgroud)

然而,在Newtonsoft.Json.dll的肠子中,上述时间转换为以下时间jObject

"inception_date": "0001-01-02T00:00:00Z"
Run Code Online (Sandbox Code Playgroud)

我无法进入他们的代码,但是由于损坏已经在我的代码看到另一个调用之前完成了。ReadJson在JsonConverter中调用serializer.Populate(jObject.CreateReader(), target);where target是我的类的实例T,并且jObject已经以某种不正确的日期呈现了。

谁能弄清楚为什么会发生这种情况,或者我怎么能防止这种情况发生?创建jObject的方式似乎忽略了我的序列化程序设置,该设置程序明确表示不要使用日期字符串(DateParseHandling.None)。


我已经截屏了一下,以确切说明Newtonsoft的JsonConvert方法似乎失去了至关重要的配置价值的地方。

如您所见,这就是我调用JsonConvert的代码点:

在此处输入图片说明

dateParseHandling值设置为“无”,这就是它应该起作用的方式。

在下一步中,我跳了一些内部Newtonsoft调用,并进入了通用实现,该通用实现是JsonConverter我从公认的参考实现中借用的,以便能够了解发生了什么。在JsonReader突然传入已经失去了dateParseHandling价值:

在此处输入图片说明

由于此值已切换回DateTime-jObject的内部工作试图将其表示为内部本地化的DateTime,因为我的时区为负,所以该下溢发生了,我们已经表示了最小的DateTime值,导致转换回到UTC添加一整天。

c# json json.net deserialization

5
推荐指数
1
解决办法
5373
查看次数

仅在禁用项目时才会显示Jenkins测试结果趋势图

出于某种原因,我的一个项目已进入状态,仪表板仅在禁用项目时显示图形:

在此输入图像描述

一旦我重新启用该项目,它就会莫名其妙地消失:

在此输入图像描述

其他几乎相同配置的项目工作正常,无论项目是启用还是禁用,图表仍然可见.

在此输入图像描述

我已经尝试过我已经看到过的类似错误[1] [2]的旧版(~2012)表现的解决方法,就像重命名项目一样,但到目前为止我所做的一切都无法解决这个问题.请注意,测试结果本身并没有消失,我仍然可以在/ testReport /中查看它们,只是图形莫名其妙地消失了.

这是使用Jenkins ver.1.554.2

我很难相信这是一个错误,是否有一个我不知道的仪表板配置页面可能已经搞砸了?

jenkins

5
推荐指数
1
解决办法
1842
查看次数

AngularJS:使用前/后解析/拒绝操作来增强或包装承诺

目标

我正在尝试创建一系列承诺"增强器",它们将围绕现有的承诺(简单的http请求)添加功能(如缓存,排队,重定向处理等).

问题

我正在通过这种增强承诺的方法遇到的问题是,如果增强功能将任何功能或公共可访问的属性添加到承诺中(或者如果我正在包装已经增强的承诺,例如一个重复的请求),那么当我通过返回一个新的包装它在一个新的承诺$q.

我可以使用什么模式来增强或包装承诺(如下面的两个示例中所示),但不会丢失承诺可能具有的任何其他(非冲突)增强功能?

例1

这是一个自动处理503-Retry-After错误的示例:

function _enhancePromiseWithAutoRetry(promise) {
  var enhancedPromise = $q(function(resolve, reject) {
    var newReject = get503Handler(this, resolve, reject);
    promise.then(resolve, newReject);
  });

  // 503 handling isn't enabled until the user calls this function.
  enhancedPromise.withAutoRetry = function(onRetry, timeout) {
    var newPromise = angular.copy(this);
    newPromise._503handled = true;
    newPromise._503onRetry = onRetry;
    newPromise._503timeout = timeout;
    return newPromise;
  };

  return enhancedPromise;
}
Run Code Online (Sandbox Code Playgroud)

我的想法是,如果我返回使用上述功能增强的承诺,用户可以:

someRequest.withAutoRetry().then(onSuccess, onError);
Run Code Online (Sandbox Code Playgroud)

或者更清楚(带链接):

someRequest.then(onSuccess, onAnyError)
           .withAutoRetry().then(onSuccess, onNon503Error);
Run Code Online (Sandbox Code Playgroud)

这里,then(...)如果服务器繁忙,第一次调用可能会立即出错,但之后的调用.withAutoRetry()会在重复请求之前轮询服务器,直到响应成功,或者RetryAfter返回非错误.

例2

这是另一个添加自定义缓存行为的示例: …

javascript promise angularjs restangular angular-promise

5
推荐指数
1
解决办法
1030
查看次数