我正在写一个WPF应用程序,我需要显示一个Webcam feed.我能够使用AForge框架轻松完成这项工作.但是当我从计算机更改为另一台计算机时,相同的代码不能以相同的方式工作.
在第一个网络摄像头提供完美的工作,但在另一个,这不会发生,饲料有很多延迟,应用程序无法正常工作.
这是代码:
private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap img = (Bitmap)eventArgs.Frame.Clone();
this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Render, (SendOrPostCallback)delegate
{
IntPtr hBitmap = img.GetHbitmap();
System.Windows.Media.Imaging.BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
hBitmap,
IntPtr.Zero,
Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
DeleteObject(hBitmap);
img.Dispose();
GC.Collect();
image1.Source = bitmapSource;
}, null);
}
Run Code Online (Sandbox Code Playgroud)
这段代码非常简单,它以一种形式从网络摄像头获取一个new_frame Bitmap,我需要做的是将它转换为一个BitmapSource,所以我可以在WPF的图像框架中显示.我认为这种转换是造成这种混乱的原因,但我不明白为什么它在计算机中起作用而在另一种情况下却不起作用.
计算机规格几乎相同,处理器是相同的,以及系统内存.
我的问题是关于性能,这个代码在一台计算机上运行顺畅,网络摄像头提供应该呈现,当我将它移植到另一台PC时,这不会发生.
如何从模态窗口调用主WPF窗口的方法?
(事实上,当我关闭一些模型窗口时,我想启动MainWindow.xaml.cs的一些计时器.)
谢谢!
我有这个XAML
<MultiBinding StringFormat=" {0}{1}/{2}">
<Binding Path="Text" ElementName="tbxAuthHost" />
<Binding Path="Text" ElementName="tbxAuthWebsiteName" />
<Binding Path="Text" ElementName="tbxAuthServicesAddress" />
</MultiBinding>
Run Code Online (Sandbox Code Playgroud)
当我尝试将"{0} {1}/{2}"更改为"{0} {1}/{2}",因此没有前导空格,然后Visual Studio会出现此错误:
错误3在MarkupExtension表达式的结束'}'之后,不允许使用文本"{1}/{2}".第116行位置56.
我该如何解决这个问题?

假设WPF WebBrowser control显示一些导航错误并且页面未显示.
所以有一个例外WPF WebBrowser control.
事实上,我需要一些方法和对象,有一个例外,以获得它如何.
我们如何处理它?
谢谢!
PS WinForm WebBrowser控件有一些方法......我们可以做类似的WPF WebBrowser控制吗?
public Form13()
{
InitializeComponent();
this.webBrowser1.Navigate("http://blablablabla.bla");
SHDocVw.WebBrowser axBrowser = (SHDocVw.WebBrowser)this.webBrowser1.ActiveXInstance;
axBrowser.NavigateError +=
new SHDocVw.DWebBrowserEvents2_NavigateErrorEventHandler(axBrowser_NavigateError);
}
void axBrowser_NavigateError(object pDisp, ref object URL,
ref object Frame, ref object StatusCode, ref bool Cancel)
{
if (StatusCode.ToString() == "404")
{
MessageBox.Show("Page no found");
}
}
Run Code Online (Sandbox Code Playgroud)
PS#2在WPF App下托管WinForm WebBrowser控件不是我认为的答案.
我只是插入
$(document).ready(function () {
alert("!!!");
});
Run Code Online (Sandbox Code Playgroud)
通常进入
@{
ViewBag.Title = "Sign Up";
Layout = "~/Views/Shared/_WebSite.cshtml";
}
<script type="text/JavaScript">
$(document).ready(function () {
alert("!!!");
});
</script>
<h2>Sign Up</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary()
{
}
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Run Code Online (Sandbox Code Playgroud)
但我看不到alert()消息......
jQuery的其他东西在这个页面正常工作......
我缺少什么?
任何线索?
谢谢!
我有这个代码
@if (ViewBag.TechnologyNames != null)
{
foreach (var technologyName in ViewBag.TechnologyNames)
{
if (@technologyName.TechnologyID == -1)
{
<div class="CheckBoxItem">
<input type="checkbox" name="option1" id="allTechnology" value="@technologyName.TechnologyID" checked="checked" />
@technologyName.Name
</div>
}
else
{
<input type="checkbox" name="option2" id="tech" value="@technologyName.TechnologyID" />
@technologyName.Name
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是以某种方式添加@technologyName.TechnologyID到id="tech"最后
id="tech_123"
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
谢谢!
可能重复:
如何创建运行STA线程的任务(TPL)?
我正在使用以下代码:
var task = Task.Factory.StartNew<List<NewTwitterStatus>>(
() => GetTweets(securityKeys),
TaskCreationOptions.LongRunning);
Dispatcher.BeginInvoke(DispatcherPriority.Background,
new Action(() =>
{
var result = task.Result; // ERROR!!! The calling thread cannot access this object because a different thread owns it.
RecentTweetList.ItemsSource = result;
Visibility = result.Any() ? Visibility.Visible : Visibility.Hidden;
}));
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
var result = task.Result; // ERROR!!! The calling thread cannot access this object because a different thread owns it.
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?
我已将ActiveX VLC pligin合并到WPF应用程序中.VLC插件工作正常.
AxVLCPlugin vlc = new AxVLCPlugin();
vlc.MediaPlayerEncounteredError += vlc_MediaPlayerEncounteredError;
vlc.MediaPlayerOpening += vlc_MediaPlayerOpening;
vlc.MediaPlayerBuffering += vlc_MediaPlayerBuffering;
vlc.MediaPlayerEndReached += vlc_MediaPlayerEndReached;
//
// Other code
// like windowsFormsHost1.Child = vlc; and etc
vlc.addTarget(videoURL, null, AXVLC.VLCPlaylistMode.VLCPlayListReplace, 1);
vlc.play();
Run Code Online (Sandbox Code Playgroud)
但有些VLC的所有事件根本不起作用.
我的意思是这些事件:
vlc.MediaPlayerEncounteredError += vlc_MediaPlayerEncounteredError;
vlc.MediaPlayerOpening += vlc_MediaPlayerOpening;
vlc.MediaPlayerBuffering += vlc_MediaPlayerBuffering;
vlc.MediaPlayerEndReached += vlc_MediaPlayerEndReached;
void vlc_MediaPlayerEndReached(object sender, EventArgs e)
{
Debug.WriteLine("[P] - StreamingVideo - END REACHED + " + DateTime.Now);
}
void vlc_MediaPlayerBuffering(object sender, DVLCEvents_MediaPlayerBufferingEvent e)
{
Debug.WriteLine("[P] - StreamingVideo - …Run Code Online (Sandbox Code Playgroud) 我刚刚创建了一个ASP .NET MVC 5 Web API项目,并添加了实体框架模型和其他东西,以使其与ASP一起使用.NET身份.

现在,我需要从WPF客户端应用程序创建对该API的标准方法的简单认证请求.
ASP .NET MVC 5 Web API代码
[Authorize]
[RoutePrefix("api/Account")]
public class AccountController : ApiController
// GET api/Account/UserInfo
[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
[Route("UserInfo")]
public UserInfoViewModel GetUserInfo()
{
ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
return new UserInfoViewModel
{
UserName = User.Identity.GetUserName(),
HasRegistered = externalLogin == null,
LoginProvider = externalLogin != null ? externalLogin.LoginProvider : null
};
}
Run Code Online (Sandbox Code Playgroud)
WPF客户端代码
public partial class MainWindow : Window
{
HttpClient client = new HttpClient();
public MainWindow() …Run Code Online (Sandbox Code Playgroud) 我刚刚发现,当我点击任何ASP .NET MVC页面上的浏览器后退按钮时,没有任何反应,页面也不会被更新.只有当您单击F5时,它才会更新.
主要问题是我对页面的DOM进行了一些更改,即添加表行选择单选按钮等,当我通过点击浏览器返回按钮返回页面时,我看到没有变化.
如何解决ASP .NET MVC 5?
感谢任何线索......
PS我已经阅读http://forums.asp.net/t/1304752.aspx?how+to+refresh+page+when+hitting+back+button但它没有帮助......
wpf ×7
.net ×5
c# ×5
activex ×1
aforge ×1
asp.net-mvc ×1
browser ×1
javascript ×1
jquery ×1
page-refresh ×1
vlc ×1
webcam ×1
xaml ×1