我正在制作WPF控件(旋钮).我试图找出数学来计算角度(0到360)基于圆圈内的鼠标点击位置.
例如,如果我点击X,Y在图像上的位置,我会得到一个点X,Y.我也有中心点,无法弄清楚如何获得角度.

我的代码如下:
internal double GetAngleFromPoint(Point point, Point centerPoint)
{
double dy = (point.Y - centerPoint.Y);
double dx = (point.X - centerPoint.X);
double theta = Math.Atan2(dy,dx);
double angle = (theta * 180) / Math.PI;
return angle;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个使用Lucene.Net的ASP.NET MVC 2项目.我在TFS 2010中制作了一个标准的构建定义.当我对新构建进行排队时,它会因此错误而失败:
CSC:生成XML文档文件'xxx\xxx\Lucene.Net.xml'时出错('访问被拒绝.')
但在我的Lucene项目属性中,我没有检查xml注释.如何才能正确构建?我不关心xml文档文件!
我试图在发布后运行命令.
<Target Name="AfterPublish" AfterTargets="MSDeployPublish">
<Exec Command="echo @@@@@ AfterPublish @@@@@ " />
</Target>
Run Code Online (Sandbox Code Playgroud)
但是如下所示,它在调用此目标后复制已发布的输出.
------ Publish started: Project: ClickOnceTest, Configuration: Debug Any CPU ------
2> @@@@@ AfterPublish @@@@@
Connecting to 'C:\temp\Debug\'...
Publishing files...
Publish success.
Run Code Online (Sandbox Code Playgroud)
在"发布文件"步骤完成后如何实现?
以下代码有时会起作用,而且大部分时间都不起作用:
WebBrowserTask wbt = new WebBrowserTask();
wbt.URL = url;
wbt.Show();
Run Code Online (Sandbox Code Playgroud)
在仿真器和真实设备(HTC HD7)上.它将调出Web浏览器(IE),但它不会放入URL或导航到它.
是什么赋予了?
我有一份电影清单
List<Movie> MovieList
Run Code Online (Sandbox Code Playgroud)
我有一个选定类别的列表
List<string> SelCat
Run Code Online (Sandbox Code Playgroud)
并说我想从电影列表中选择它匹配2个类别,如下面的SQL语句:
SELECT * FROM MovieList WHERE MovieList.Category = 'Action' AND MovieList.Category = 'Drama'
我可以像linq那样接近linq:
var q = (from b in MovieList where b.Categories.Any(p=> SelCat.Contains(p)) select b);
但它的作用类似于OR查询,而不是AND.我想让它选择所有具有动作和戏剧类别的电影.
BTW:Movie.Categories是一个字符串列表.AND Movie.Categories必须包含SelCat中的项目.
如何使用Linq to Objects实现这一目标?
我想在XAML中用触发器执行此操作,我该怎么做?
If ListBox1.SelectedIndex > -1 Then
Border1.Visibility = Windows.Visibility.Visible
Else
Border1.Visibility = Windows.Visibility.Hidden
End If
Run Code Online (Sandbox Code Playgroud)
此XAML代码不起作用.SelectedIndex成员无效,因为它没有合格的类型名称.
<ListBox.Triggers>
<Trigger SourceName="ListBox1" Property="SelectedIndex" Value="False">
<Setter TargetName="Border1" Property="Visibilty" Value="Hidden" />
</Trigger>
</ListBox.Triggers>
Run Code Online (Sandbox Code Playgroud) 基本上我想要做的就是这个伪代码
List<DatabaseRecord> records;
List<ChangedItem> changedItems;
Parallel.ForEach<DatabaseRecord>(records, (item, loopState) =>
{
if (item.HasChanged)
{
lock (changedItems)
{
changedItems.Add(new ChangedItem(item));
}
}
});
Run Code Online (Sandbox Code Playgroud)
但我担心的是锁定changedItems.虽然它有效,但我听说它必须一遍又一遍地序列化锁定的对象.有没有更好的方法呢?
我的控制器上有标准的Create()Edit()和Delete()方法,我正在使用EF4自跟踪实体.
当回发编辑时,model.ChangeTracker.ChangeTracking = false,以及model.ChangeTracker.State = ObjectState.Added,即使我确保在最初检索记录时设置了这些.
提交表单时,自我跟踪实体是否未持久保存ChangeTracker类?如果是这样,我该如何解决?
public virtual ActionResult Edit(int personId)
{
IContext context = ContextFactory.GetContext();
EntityRepo Repo = new EntityRepo(context);
Person d = Repo.Person.GetById(PersonId);
d.ChangeTracker.ChangeTrackingEnabled = true;
return View(d);
}
[HttpPost]
public virtual ActionResult Edit(int personId, Person item)
{
try
{
if (ModelState.IsValid)
{
IContext context = ContextFactory.GetContext();
EntityRepo Repo = new EntityRepo(context);
// the item is returning these properties that are wrong
//item.ChangeTracker.ChangeTrackingEnabled = false;
//item.ChangeTracker.State = ObjectState.Added;
Repo.Person.Update(item);
Repo.Person.SaveChanges();
return RedirectToAction("Index");
}
}
catch
{
} …Run Code Online (Sandbox Code Playgroud) 我有一个"api"例如存储库模式,我写了从web返回xml然后将它水合成类.
它似乎挂起了GetXmlAsync(url)方法的结果.
public async Task<string> GetXmlAsync(string url)
{
string xml = string.Empty;
HttpMessageHandler handler = new HttpClientHandler();
HttpClient httpClient = new HttpClient(handler);
Uri uri = new Uri(url, UriKind.Absolute);
HttpResponseMessage response = await httpClient.GetAsync(uri);
xml = await response.Content.ReadAsStringAsync();
return xml;
}
Run Code Online (Sandbox Code Playgroud)
但是当我在单元测试中使用相同的代码时,它可以工作.
在应用程序中,我称之为:
public async Task<IEnumerable<Post>> GetRecentAsync(int page)
{
string url = this.urls.GetRecent(page);
string xml = string.Empty;
var xmlTask = this.loader.GetXmlAsync(url);
xml = xmlTask.Result; // Hangs right here.
var results = this.modelLoader.XmlToPost(xml);
if (results.Count() < 1)
{
this.LastError = XmlLoadError;
} …Run Code Online (Sandbox Code Playgroud) 我想在WPF/Silverlight窗口的每个角落都有4个按钮.但是我希望网格/窗口中的东西在按钮的"后面",好像它们漂浮在顶部.
<Grid x:Name="ButtonRoot">
<Button VerticalAlignment="Top" HorizontalAlignment="Left"
Name="bTopLeft" />
<Button VerticalAlignment="Top" HorizontalAlignment="Right"
Name="bTopRight" />
<Button VerticalAlignment="Bottom" HorizontalAlignment="Left"
Name="bBottomLeft" />
<Button VerticalAlignment="Bottom" HorizontalAlignment="Right"
Name="bBottomRight" />
<!-- Other junk here -->
</Grid>
Run Code Online (Sandbox Code Playgroud)
问题是,按钮不会"过度",因为事物将"包裹"在按钮周围.我该如何达到这个效果?
所以我有以下代码:
var itemsGrouped = this.Errors.GroupBy(x => x.UniqueName).AsEnumerable();
var hasErrors = !itemsGrouped.Any((f) =>
{
var errorCount = f.ToArray()
.Where(x => x.ErrorCount.HasValue)
.Count(x => x.ErrorCount.Value > 0);
return errorCount > 2;
});
Run Code Online (Sandbox Code Playgroud)
现在我想检索与.Any()查询匹配的单个项目.我如何只获得匹配的项目?
c# ×5
wpf ×3
linq ×2
xaml ×2
async-await ×1
browser ×1
clickonce ×1
math ×1
msbuild ×1
publish ×1
silverlight ×1
task ×1
tfs2010 ×1
tfsbuild ×1
windows-8 ×1
winrt-xaml ×1
wpf-controls ×1