小编Mat*_*ijs的帖子

设置相机宽度和高度phonegap相机

我目前正在创建一个使用Phonegap(Cordova)相机插件的移动应用程序.它正确捕获图像并将其显示在我想要的位置,但我似乎无法设置targetWidth和targetHeight选项,如上所述.

targetWidth:用于缩放图像的宽度(以像素为单位).必须与targetHeight一起使用.纵横比保持不变.(数)

targetHeight:以像素为单位的高度,用于缩放图像.必须与targetWidth一起使用.纵横比保持不变.(数)

据我了解,这将改变输出的图像宽度和高度.但是,他们似乎没有工作.

我在研究解决方案时发现的一个建议是说使用可选参数allowEdit.在此我可以让用户选择预设的平方图像.然而,这似乎也不起作用.

请参阅下面的代码以供参考.

camera: function() {
    //Fire up the camera!
    navigator.camera.getPicture(onSuccess, onFail, {
        destinationType: Camera.DestinationType.DATA_URL,
        allowEdit: true,
        targetWidth: 512,
        targetHeight: 512
    });
},
Run Code Online (Sandbox Code Playgroud)

这两种尝试都没有按照我的意愿取得成功; 捕获图像的固定宽度和高度.

如何在此图像上设置图像宽度和高度?

javascript android phonegap-plugins cordova

14
推荐指数
1
解决办法
1万
查看次数

Try-Finally Dispose和Using-statement之间的区别

我一直在深入研究微软的Code Analysis,偶然发现了一些非常有趣的东西..NET似乎使用两种不同类型的Dispose,具体取决于它的调用方式.请选择以下两个选项:

public void SqlConnectionUsing()
{
    using (SqlConnection connection = new SqlConnection())
    {
    }
}

public void SqlConnectionFinally()
{
    SqlConnection connection = new SqlConnection();
    try
    {
    }
    finally
    {
        connection.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

这两个选项都被翻译成完全相同的东西; 在编译期间.using成为一个try-finally语句,在finally语句中调用Dispose方法.

我说一个处置法; 因为什么样的dispose方法取决于你编写代码的方式.

当去的时候using-statement,一个电话就到了callvirt instance void [mscorlib]System.IDisposable::Dispose()(这是确切的IL线).

并手动执行try-finally选项,dispose语句更改为:callvirt instance void [System]System.ComponentModel.Component::Dispose().

为什么调用dispose函数会有区别?

如果需要,我可以添加整个IL代码.

.net c# dispose

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

Google IMA VAST跟踪宏

我目前正在编写类似Google IMA的实现,因为我正在使用的各种平台上不支持IMA.

当IMA发送跟踪事件时,它会替换URL中的某些宏.请参阅[XXXXX]下面的网址中的值.

https://video-ad-stats.googlesyndication.com/video/client_events?event=3&web_property=ca-pub-2226646527662415&cpn=[CPN]&break_type=[BREAK_TYPE]&slot_pos=[SLOT_POS]&ad_id=[AD_ID]&ad_sys=[AD_SYS]&ad_len=[AD_LEN]&p_w=[P_W]&p_h=[P_H]&mt=[MT]&rwt=[RWT]&wt=[WT]&sdkv=[SDKV]&vol=[VOL]&content_v=[CONTENT_V]&conn=[CONN]&format=[FORMAT_NAMESPACE]_[FORMAT_TYPE]_[FORMAT_SUBTYPE]
Run Code Online (Sandbox Code Playgroud)

因为我不能使用IMA,所以我必须自己更换这些宏.谷歌IMA网站没有提供任何关于这些值应该是什么的线索.我从看到IMA创建的网址推断出一些,但有些仍然缺失.请参阅下面的完整列表.

CPN:
BREAK_TYPE: The type of adbreak (1 for preroll)
SLOT_POS: Sequence number of the advertisement
AD_ID: Advertisement ID, inline-advertisement ID
AD_SYS: Advertisement system, inline-advertisement system
AD_LEN: AD length in miliseconds
P_W: Videoplayers' size width (pixels)
P_H: Videoplayers' size height (pixels)
MT:
RWT:
WT:
SDKV: SDK Version (so our own version?)
VOL: Sound Volume (not 100% sure)
CONTENT_V:
CONN:
FORMAT_NAMESPACE:
FORMAT_TYPE:
FORMAT_SUBTYPE:
Run Code Online (Sandbox Code Playgroud)

Google IMA使用的其他宏值是什么?

附加

  • RWT似乎是四个时间戳的连续性.哪个时间戳不确定.(Unix Epoch格式)
  • WT是一个单一时间戳.(Unix Epoch格式)

google-ima double-click-advertising

5
推荐指数
0
解决办法
532
查看次数

关闭winform应用程序并隐藏主窗体

我试图通过Form.Closing事件关闭我的winforms应用程序,并带有自定义消息(你想退出是/否).为此我已经为我的c#项目中的每个表单编辑了onFormClosing事件.像这样:

protected override void OnFormClosing(FormClosingEventArgs e)
{
    base.OnFormClosing(e);

    if (e.CloseReason == CloseReason.WindowsShutDown) return;

    // Confirm user wants to close
    switch (MessageBox.Show(this, "Are you sure you want to close?", "Closing", MessageBoxButtons.YesNo))
    {
    case DialogResult.No:
        e.Cancel = true;
        break;
    default:
        break;
    }        
}
Run Code Online (Sandbox Code Playgroud)

当用户单击是时,我想让整个应用程序退出.但是,我有一个主窗体,它起到登录窗体的作用.当用户登录时,主窗体将被隐藏,并显示不同的窗体.

因此,当用户单击"是"时,整个应用程序不会因为隐藏的表单而结束.如何确保整个应用程序关闭?

我尝试过Application.Exit(),这会触发消息框再次确认关闭,因为它调用了OnFormClosing事件.

c# visual-studio winforms

4
推荐指数
1
解决办法
479
查看次数

检查文本框中的输入是否为电子邮件

我试图验证userinput是否是电子邮件地址(向数据库添加成员).

当调用验证事件时,用户将在TextBox中输入数据; 我想检查输入是否是有效的电子邮件地址.因此在字符串中包含至少一个@和一个点(.).

有没有办法通过代码,或者使用MaskedTextbox中的Mask来实现这一点?

c# winforms

4
推荐指数
1
解决办法
2万
查看次数

撤消结帐TFS

有没有办法在C#中以编程方式撤消结帐?

这些文件以编程方式检出,但如果代码在执行时没有改变,我希望撤消结帐.

public static void CheckOutFromTFS(string fileName)
{
    var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(fileName);
    if (workspaceInfo == null)
        return;

    var server = new TfsTeamProjectCollection(workspaceInfo.ServerUri);
    var workspace = workspaceInfo.GetWorkspace(server);
    workspace.PendEdit(fileName);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是我的结帐代码.

c# tfs

4
推荐指数
1
解决办法
1733
查看次数

禁用代码分析输出MSBuild

我正在使用构建定义构建项目.执行此操作时,还会执行代码分析.代码分析输出各种文件,包括:

ConsoleApplication2.exe.CodeAnalysisLog.xml
ConsoleApplication2.exe.lastcodeanalysissucceeded
Run Code Online (Sandbox Code Playgroud)

有没有办法在我的构建定义中禁用此输出,例如通过参数或类似的东西?

msbuild code-analysis fxcop

4
推荐指数
2
解决办法
1972
查看次数

使用带角度设置的线性渐变背景的画布

我正在尝试创建一个画布对象,我可以用它来创建图像(使用canvas.toDataURL())。

此画布的关键元素之一必须是使用以下 css 设置的背景渐变:

background: -webkit-linear-gradient(-45deg, #1e5799 0%,#2989d8 36%,#207cca 71%,#7db9e8 100%);.

如您所见,这是使用特定角度(-45deg).

有什么方法可以让我使用画布创建它,并且还可以从中创建包含此背景的图像?

这在手动设置 css-background 属性时toDataURL不起作用,因为没有考虑任何 css。我也看过自己将它绘制到画布中,但ctx.createLinearGradient不支持绘制角度。

如何实现toDataURL包含我想要的背景的画布?

javascript css canvas

4
推荐指数
1
解决办法
1591
查看次数

使用array.splice时,Undefined不是函数

我试图从数组中删除一些元素,并使用splice它还返回这些值的功能.请参阅以下javascript:

var blocksUsed = allNumbers.splice(0,3);
Run Code Online (Sandbox Code Playgroud)

当试图运行这一行(与整个函数一起)时,我收到一条错误说明如下:

未捕获的TypeError:undefined不是函数

我花了很长时间在函数中寻找印刷错误,但似乎没有.我也准备好JQuery是常见的麻烦制造者,但我没有使用JQuery.

通过改组另一个数组来创建数组(shuffle函数不是我的):

function shuffle(o){
    for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
    return o;
};
Run Code Online (Sandbox Code Playgroud)

然后我以下列方式使用它:

var allNumbers = shuffle(blocks);
Run Code Online (Sandbox Code Playgroud)

我尝试记录allNumbers,它正常工作.数组被正确洗牌.然而,尝试对此进行拼接会产生相同的错误.

还要注意我在for循环中进行拼接.代码如下.

for (var i = 0; i < 4; i++){

    // Get a block of 3 blocks.
    var blocksUsed = allNumbers.splice(0,3); // This line gives the error.

    // Determine the color used for these blocks and remove …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

3
推荐指数
2
解决办法
3654
查看次数

按钮点击winforms c#验证输入

我在文本框中验证userinput有一个小问题.

有一个带有各种文本框的用户控件,用户可以在其中输入数据以将新记录添加到数据库.当这些文本框中的任何一个没有正确的值(null或特定)时,我希望取消插入并让'errormaking'文本框获得焦点.

必须通过按钮检查.我可以调用按钮的Validating事件,还是有不同的(更好的)方法来实现这个?

此外,还有一个取消按钮取消整个插入.当尝试使用errorprovider时,"取消"按钮也变得不可用,因为该字段为空,因此无法发送.

一些代码供参考:

private void CheckInput(CancelEventArgs e, TextBox tb)
    {
        ErrorProvider error = new ErrorProvider();
        if (string.IsNullOrEmpty(tb.Text))
        {
            error.SetError(tb, "*");
            e.Cancel = true;
        }

        if (!string.IsNullOrEmpty(tb.Text)) 
        {
            error.SetError(tb, string.Empty);
            error.Clear();
            error.Dispose();
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# winforms

2
推荐指数
1
解决办法
6349
查看次数

单元测试与键选择器和比较器不同

我将如何进行单元测试这段LINQ代码?

public static IEnumerable<T> Distinct<T, TKey>(this IEnumerable<T> items, Func<T, TKey> keySelector, IEqualityComparer<TKey> comparer)
{
    return items.Distinct(new KeyEqualityComparer<T, TKey>(keySelector, comparer.Equals));
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何在最后使用比较器,这是正确的用法是什么?

编辑:抱歉不清楚;

我想知道的是:

  1. 这段代码的作用.
  2. 如何使用此代码.
  3. 我如何能够对这段代码进行单元测试.

KeyEqualityComparer:

class KeyEqualityComparer<T, TResult>: IEqualityComparer<T>
{
    private readonly Func<T, TResult> _KeySelector;
    private readonly Func<TResult, TResult, bool> _Predicate;

    public KeyEqualityComparer(Func<T, TResult> keySelector, Func<TResult, TResult, bool> predicate)
    {
        if (keySelector == null)
            throw new ArgumentNullException("keySelector");
        _KeySelector = keySelector;
        _Predicate = predicate ?? System.Collections.Generic.EqualityComparer<TResult>.Default.Equals;
    }

    public bool Equals(T x, T y)
    {
        return _Predicate(_KeySelector(x), _KeySelector(y));
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c# linq unit-testing

2
推荐指数
1
解决办法
187
查看次数

div 的左侧元素为空字符串

我正在尝试更改绝对定位 div 的左侧位置。该样式是使用以下内容在 css 中预先声明的:

#menu {
   position:absolute;
   width:200px;
   min-height:40%;
   left:-200px;
}
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用 javascript 检查 的值时left,它显示为"". 下面的JS用于检查值:

var menuElement = document.getElementById('menu');
console.log(menuElement.style.left);
Run Code Online (Sandbox Code Playgroud)

我已经设置了这个 codepen作为演示。请注意,对于负左值和正左值都会发生这种情况。

为什么左边的值总是""

就此而言,任何样式元素似乎都显示为""。为什么会发生这种情况?

html javascript css

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