我目前正在创建一个使用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)
这两种尝试都没有按照我的意愿取得成功; 捕获图像的固定宽度和高度.
如何在此图像上设置图像宽度和高度?
我一直在深入研究微软的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代码.
我目前正在编写类似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使用的其他宏值是什么?
附加
我试图通过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事件.
我试图验证userinput是否是电子邮件地址(向数据库添加成员).
当调用验证事件时,用户将在TextBox中输入数据; 我想检查输入是否是有效的电子邮件地址.因此在字符串中包含至少一个@和一个点(.).
有没有办法通过代码,或者使用MaskedTextbox中的Mask来实现这一点?
有没有办法在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)
上面的代码是我的结帐代码.
我正在使用构建定义构建项目.执行此操作时,还会执行代码分析.代码分析输出各种文件,包括:
ConsoleApplication2.exe.CodeAnalysisLog.xml
ConsoleApplication2.exe.lastcodeanalysissucceeded
Run Code Online (Sandbox Code Playgroud)
有没有办法在我的构建定义中禁用此输出,例如通过参数或类似的东西?
我正在尝试创建一个画布对象,我可以用它来创建图像(使用canvas.toDataURL())。
此画布的关键元素之一必须是使用以下 css 设置的背景渐变:
background: -webkit-linear-gradient(-45deg, #1e5799 0%,#2989d8 36%,#207cca 71%,#7db9e8 100%);.
如您所见,这是使用特定角度(-45deg).
有什么方法可以让我使用画布创建它,并且还可以从中创建包含此背景的图像?
这在手动设置 css-background 属性时toDataURL不起作用,因为没有考虑任何 css。我也看过自己将它绘制到画布中,但ctx.createLinearGradient不支持绘制角度。
如何实现toDataURL包含我想要的背景的画布?
我试图从数组中删除一些元素,并使用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) 我在文本框中验证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) 我将如何进行单元测试这段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)
我不知道如何在最后使用比较器,这是正确的用法是什么?
编辑:抱歉不清楚;
我想知道的是:
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) 我正在尝试更改绝对定位 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作为演示。请注意,对于负左值和正左值都会发生这种情况。
为什么左边的值总是""?
就此而言,任何样式元素似乎都显示为""。为什么会发生这种情况?