在过去的几个月里,我注意到有几次我有时会使用黄色的小灯泡图标并右键单击它并选择一个选项来为我修复一些东西,然后它只是突出显示它要修复的内容并弹出一个消息"无法修改文档".
有人有这个问题吗?
你知道如何克服它吗?
这几乎就像resharper认为文档是只读的或者其他东西,即使我可以手动编辑文档.
我正在敲打我的桌面上的这个绑定错误..我检查了几个BindingExpression路径错误的帖子,看不到任何与我的情况有关的东西.
无论如何,我有一个名为的自定义控件IncrementingTextBox.我试图在用户'检查' CheckBox上面的时候禁用它.
我对该CheckBox IsChecked属性的绑定工作正常,并在它应该发射时触发.它正在UseSensorLengthConfigurationModel上正确设置属性.
但是,对IncrementingTextBox IsEnabled属性的绑定导致BindingExpression路径错误,因此根本不更新.
作为测试,我尝试在后面的代码启用和禁用控件,它工作得很好,但我似乎无法让Binding工作.
这是我的xaml的一个片段:
...
DataContext="{Binding RelativeSource={RelativeSource Self}}"
...
...
<CheckBox Content="Use Sensor Length" Margin="30,6,0,0"
IsChecked="{Binding ConfigurationModel.UseSensorLength, Mode=TwoWay}"/>
<local:IncrementingTextBox x:Name="video_length_textbox" Margin="0,0,0,5"
IsTextEnabled="False"
IsEnabled="{Binding ConfigurationModel.DontUseSensorLength}"
ValueChanged="VideoEventValueChanged"/>
Run Code Online (Sandbox Code Playgroud)
这是我的ConfigurationModel的一个片段:
public bool DontUseSensorLength
{
get { return !UseSensorLength; }
}
public bool UseSensorLength
{
get { return _useSensorLength; }
set
{
_useSensorLength = value;
OnPropertyChanged("UseSensorLength");
OnPropertyChanged("DontUseSensorLength");
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我在运行应用程序时在输出窗口中收到的错误消息:
System.Windows.Data错误:40:BindingExpression路径错误:'object'''IncrementingTextBox'(Name ='video_length_textbox')'上找不到'ConfigurationModel'属性.BindingExpression:路径= ConfigurationModel.DontUseSensorLength; DataItem ='IncrementingTextBox'(Name ='video_length_textbox'); target元素是'IncrementingTextBox'(Name …
Resharper 9.0表示"在选定的解决方案项目中未找到任何测试".然而,有超过100个测试.
我在Visual Studio 2013中右键单击我的解决方案,然后单击上下文菜单底部附近的"运行单元测试"选项.我收到错误消息:"在选定的解决方案项目中找不到测试.".
每隔一段时间,它们就会显示并运行,但大多数情况下,它们不会显示,我会收到错误消息.
我安装了NCover,它有一个'Bolt Tests'选项卡,我可以从中运行所有测试.但是,我更喜欢使用Resharper从主菜单运行测试.
有谁知道为什么这些测试没有出现以及如何让它们一直被发现?
谢谢,柯蒂斯
我开始使用Xamarin是因为我想留在Visual Studio 2013环境中而不必学习新的环境.无论如何,我打算在下面粘贴我的控制器代码,希望有人比我聪明(几乎可以肯定)并且可以让我回到正轨.
我刚刚发现了AutoLayout.在我看来,AutoLayout理解对于加速开发至关重要.但是,在Visual Studio 2013中,我没有找到很多关于在纯C#中使用AutoLayout的信息.也许我只是在寻找合适的地方.
无论如何,让我们用一个简单的控制器开始这个新讨论,该控制器在C#中使用AutoLayout TOTALLY,而根本不使用任何.nib或Interface Builder的东西.而且不使用Xamarin Studio.只需在Visual Studio 2013中完成所有操作.
以下是要求:
我们需要处理不同的设备.iPod,iPad,iPhone,版本4和5
这应该是微不足道的,但是我已经在键盘上敲了两天试图让它工作.任何建议,示例或想法都会非常有用.请记住,我们只想在Visual Studio中使用C#而根本不使用Interface Builder.这是我的非工作尝试:
使用下面的代码,我最终在内部视图下方的屏幕上显示AdBanner.此外,内部视图比屏幕长,只有屏幕宽度的一半.这里发生了什么?我是否需要在某处启用AutoLayout功能?我可以在C#代码中执行此操作还是隐藏在项目设置中的某处?
using System;
using MonoTouch.iAd;
using MonoTouch.UIKit;
namespace ADayBDayiOS
{
public class ADViewController : UIViewController
{
private UIView InternalView { get; set; }
private ADBannerView AdView { get; set; }
public override void ViewDidLoad()
{
base.ViewDidLoad();
InternalView = new UIView{BackgroundColor=UIColor.Blue};
//This is apple's standard ADBannerView
AdView = new ADBannerView(ADAdType.Banner) {Hidden = true};
AdView.FailedToReceiveAd += HandleFailedToReceiveAd;
AdView.AdLoaded += HandleAdLoaded; …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我希望能够移动滑块.但是,程序每30秒自动更新一次滑块.当我尝试用鼠标更改滑块位置时,程序仍在更新滑块位置,因此我无法用鼠标手动移动它.
不知何故,如果用户正在更改其位置,我希望应用程序不更新滑块.如何在不使用左键按下事件的情况下判断鼠标左键是否已关闭?我只想访问鼠标,并检查鼠标左键的按钮状态.如何在不进入鼠标事件的情况下访问它?
我正在使用Xamarin.iOS,无法弄清楚如何更新单个单元格.在WPF ListView中,我可以只进行绑定并让单元格的属性执行inotifypropertychanged并且它会通过绑定自动发生.Xamarin.iOS中是否有一些等效的功能?更新UITableView单元格而不是擦除它们并重新添加它们似乎非常麻烦.
更新单个细胞的最佳方法是什么?
我有一个方法吞噬了我的CPU时间的25%.我称这种方法每秒约27,000次.(是的,很多电话,因为它经常更新).我想知道是否有人知道更快的方法来检测2个多边形是否重叠.基本上,我必须检查屏幕上的移动物体与屏幕上的静止物体.我正在使用PathGeometry,下面的两个调用占用了我程序使用的cpu时间的25%.我传递的PointCollection对象只包含4个点,表示多边形的4个角.它们可能不会创建矩形区域,但所有点都是连接的.我猜一个trapazoid就是形状.
这些方法很简单,并且很容易实现,但我想如果我能让它比下面的代码更快地运行,我可能会选择更复杂的解决方案.有任何想法吗?
public static bool PointCollectionsOverlap(PointCollection area1, PointCollection area2)
{
PathGeometry pathGeometry1 = GetPathGeometry(area1);
PathGeometry pathGeometry2 = GetPathGeometry(area2);
return pathGeometry1.FillContainsWithDetail(pathGeometry2) != IntersectionDetail.Empty;
}
public static PathGeometry GetPathGeometry(PointCollection polygonCorners)
{
List<PathSegment> pathSegments = new List<PathSegment>
{ new PolyLineSegment(polygonCorners, true) };
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.Figures.Add(new PathFigure(polygonCorners[0], pathSegments, true));
return pathGeometry;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Windows自动化来测试我的UI并且正在打开和关闭进程.我想拥有一个有效的WindowHandle,但Process.WaitForInputIdle()不会等待足够长的时间.我有一个解决方法,但不明白为什么WaitForInputIdle()不起作用.
下面是一个小代码片段:
Process = new Process
{
StartInfo =
{
WorkingDirectory = directory,
FileName = EXECUTABLE_FILE_NAME
}
};
Process.Start();
//Process.WaitForInputIdle() doesn't work,
//so will use a while loop until MainWindowHandle isn't IntPtr.Zero anymore,
//or until 10 seconds have elapsed
int count = 0;
while (Process.MainWindowHandle == IntPtr.Zero && count<100)
{
count++;
Thread.Sleep(100);
}
AppElement = AutomationElement.FromHandle(Process.MainWindowHandle);
Run Code Online (Sandbox Code Playgroud) 以下代码在 Windows 中运行良好,但是,当使用 Xamarin 并面向 iOS 时,GetManifestResourceStream() 返回 null。
Assembly assembly = Assembly.GetExecutingAssembly();
Stream stream = assembly.GetManifestResourceStream("CommunicationModel.XmlSchemas.DeviceCommon.xsd");
Run Code Online (Sandbox Code Playgroud)
我已将文件“DeviceCommon.xsd”设置为嵌入式资源。不确定为什么它没有返回有效的流。
有谁知道为什么这在使用 Xamarin 的 iOS 中不起作用?
更新:
好的,所以我按照评论中的建议并将文件设置为 Content。
我现在可以检测到该文件,但无法打开它:
if (File.Exists("DeviceCommon.xsd"))
{
try
{
myStream = new FileStream("DeviceCommon.xsd", FileMode.Open);
}
....
}
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,“File.Exists()”调用有效,但是当我尝试打开它时,出现以下异常:
Access to the path "/private/var/mobile/Applications/8BD48D1F-F8E8-4A80-A446-F807C6728805/UpnpUI_iOS.app/DeviceCommon.xsd" is denied.
Run Code Online (Sandbox Code Playgroud)
有人有一些想法我可以如何解决这个问题吗?
谢谢,柯蒂斯
早上好,
我们决定尽可能使用 UPnP。我们在 239.255.255.250:1900 上使用 MultiCast 进行 M-SEARCH。
不过,我们正在研究如何处理客户在其网络上锁定 MultiCast 的情况。查看 UPnP 1.1 规范,它讨论了使用带有 M-SEARCH 的单播。因此,如果我们已经知道要与之通信的各种设备的 IP 地址,并且它们正在侦听 0.0.0.0:1900,则我们认为可以向 deviceIP:1900 上的每个设备发送单播 M-SEARCH。
我一直在尝试这样做,并且在让设备接收并响应单播 M-SEARCH 请求方面花费了很大的时间。
首先,是否允许您与设备的第一次 UPnP 对话以单播 M-SEARCH 开始?
其次,是否有某种原因导致在 0.0.0.0:1900 上监听不接受发送到 deviceIP:1900 的消息?
当我在计算机上执行 netstat 以查看正在使用的 IP 和端口时,似乎 239.255.255.250:1900 不在列表中,或者显示为 0.0.0.0:1900。
那么,如果 0.0.0.0 是 (ANY_IP),那么在 0.0.0.0:1900 上侦听的单个侦听器是否足以接收多播到 239.255.255.250:1900 的任何消息以及通过单播直接发送到该计算机的 ip:1900 的任何消息?
测试时,我总是能够收到多播,但我从未收到 M-SEARCH 的单播。在执行 GET 等操作时,我能够与其他端口上的设备进行通信,但似乎我无法让端口 1900 响应单播 M-SEARCH。
您实际上可以在同一台计算机上同时以多播方式侦听 239.255.255.250:1900 并以单播方式侦听 0.0.0.0:1900 而不发生 udp 套接字冲突吗?
对此的任何建议和指示将不胜感激。
谢谢,柯蒂斯
PS:我正在使用的代码如下。对于构造函数中的地址,我们传入 IPAddress.Any(即 0.0.0.0),Protocol.Port 为 1900。这在 Windows 8.1 下的 Windows 计算机上运行: …
c# ×4
wpf ×4
ios ×3
xamarin ×3
xamarin.ios ×2
autolayout ×1
binding ×1
git ×1
mouse ×1
multicast ×1
ncover ×1
nunit ×1
pathgeometry ×1
polygon ×1
polygons ×1
process ×1
resharper ×1
udp ×1
udpclient ×1
uitableview ×1
unit-testing ×1
upnp ×1
xaml ×1