小编Jac*_*cob的帖子

如何在控件外部单击时关闭Silverlight中的弹出窗口?

在我的Silverlight UI中,我有一个按钮,当单击时会弹出一个带有一些过滤参数的控件.当你在它外面点击时,我希望这个控件隐藏起来.换句话说,它应该以类似于组合框的方式运行,但它不是组合框(您不选择其中的项目).这是我试图捕获控件之外的点击以解除它的方式:

public partial class MyPanel : UserControl
{
    public MyPanel()
    {
        InitializeComponent();
    }

    private void FilterButton_Click(object sender, RoutedEventArgs e)
    {
        // Toggle the open state of the filter popup
        FilterPopup.IsOpen = !FilterPopup.IsOpen;
    }

    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        // Capture all clicks and close the popup
        App.Current.RootVisual.MouseLeftButtonDown += delegate {
            FilterPopup.IsOpen = false; };
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,事件处理程序MouseLeftButtonDown永远不会被触发.是否有一种成熟的方法可以使弹出控件在你点击它之外时自动解除?如果没有,为什么我的MouseLeftButtonDown处理程序没有解雇?

解:

我想我会发布我的整个解决方案,以防其他人觉得它有用.在我的顶级视觉中,我为弹出窗口声明了一个"盾牌",如下所示:

<UserControl xmlns:my="clr-namespace:Namespace"
    x:Class="Namespace.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" 
    xmlns:uriMapper="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
>
  <Grid Background="Black" HorizontalAlignment="Stretch" 
          VerticalAlignment="Stretch"> …
Run Code Online (Sandbox Code Playgroud)

c# silverlight popup event-handling silverlight-3.0

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

边界椭圆

我已经获得了图形模块的分配,其中一部分是计算一组任意形状的最小边界椭圆.椭圆不必是轴对齐的.

这是在使用AWT形状的java(euch)中工作,因此我可以使用所有工具形状来检查对象的包含/交集.

java geometry collision-detection bounding

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

在CSV文件中写入C#对象列表

我有一个C#对象有8个大小为200的数组元素.我需要将这些数组打印到相应标签上的CSV文件中.数据可能包含string,int和double.

例如:

time   time1   time2  Day  time4  time4 time5 time6 time7
1       5       9     Mon   7.0    8      9    5     NA
2
3
3
.
.
200    200    200    Sun   200    200   200   200    200

哎呀,time1等是标签(Header)数据(8个列表有200个元素)应该在这些标签下写入.感谢您的回复!

c# csv list

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

在根站点下托管的应用程序中配置子目录身份验证模式

在我的本地计算机上,我在多个网站上工作,并在"默认"网站下的IIS下运行它们.这样我就可以通过这种类型的URL访问网站:http:// localhost/App1 /.这是结构:

LocalDev (site)
    App1 (application)
    App2 (application)
    App3 (application)

我遇到的问题是在App1中,我试图在App1的子目录上启用Windows身份验证,如下所示:

<configuration>
  <location path="internal">
    <system.web>
      <authentication mode="Windows"/>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试访问http://localhost/App1/internal/url.aspx时,我收到此错误:

在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的.此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的.

App1设置为应用程序,而不是虚拟目录.我已经尝试更改我的machine.config以允许在任何地方更改身份验证部分:

<configuration>
  <configSections>
    <sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="Everywhere"/>
    </sectionGroup>
  </configSections>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能让我的网站设置自己的身份验证模式?

asp.net iis web-config

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

在C#中反序列化JSON数组(或列表)

这是基本代码:

public static string DeserializeNames()
{

    jsonData = "{\"name\":[{\"last\":\"Smith\"},{\"last\":\"Doe\"}]}";

    JavaScriptSerializer ser = new JavaScriptSerializer();

    nameList myNames = ser.Deserialize<nameList>(jsonData);

    return ser.Serialize(myNames);
}

//Class descriptions

public class name
{

   public string last { get; set; }

}

public class nameList
{

   public List<name> { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我试过了:

nameList myNames = ser.Deserialize<nameList>(jsonData);
Run Code Online (Sandbox Code Playgroud)

和:

List<name> myNames = ser.Deserialize<List<name>>(jsonData);
Run Code Online (Sandbox Code Playgroud)

并且都不起作用.有人有主意吗?

c# asp.net ajax serialization json

17
推荐指数
2
解决办法
9万
查看次数

IE 9在某些条件下不使用子像素抗锯齿

[原标题:IE 9文字渲染效果很差; 有解决方法吗?)

IE 9正在渲染我的应用程序中的文本非常糟糕.问题不在我的显示器的清除类型设置中,因为兼容模式下的IE 9,Firefox和Chrome都能很好地呈现文本.以下是对IE 9,兼容模式下的IE 9和Chrome进行文本渲染的并排比较:

IE 9

IE 9兼容模式

在此输入图像描述

我尝试应用这个答案,但它似乎不适用于IE 7后的任何内容.有人知道我们可以应用于我们的网站来修复IE 9的坏文本呈现的任何变通方法吗?

编辑:

我把问题页面简化为最基本的要点.正如您所看到的,重现并不需要太多.如果IE9和IE9标准的文档模式,请确保IE具有浏览器模式:

<html xmlns="http://www.w3.org/1999/xhtml">
  <body style="background-color: rgb(30, 34, 59); color: rgb(255, 85, 0); font-size: 20px">
    Home
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

antialiasing text-rendering cleartype internet-explorer-9

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

该进程无法访问该文件,因为该文件正由另一个进程使用

我从SQL Server数据库字段获取二进制数据,并在我的应用程序具有权限的目录中本地创建文档.但是我仍然得到标题中指定的错误.我已尝试在网上发布了许多建议,包括在Stackoverflow上的帖子中提出的建议.我还使用了ProcessExplorer> Find Handle来找到锁,它没有返回任何内容,好像文件没有被锁定一样.

我使用下面的代码将文件保存到文件系统,然后我尝试在另一个方法的应用程序进程中将此文件复制到新位置.正是这种复制方法采用了抛出异常的新创建文件的路径.

文件本身是用它的内容创建的,我可以通过Windows资源管理器打开它,没有任何问题.

我错过了一些完全明显的东西吗 我是否正确地从数据库创建文件?任何有关解决或更好地诊断问题的帮助将非常感激.

// Get file from DB
FileStream fs = new FileStream(
    "C:\myTempDirectory\myFile.doc", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write("BinaryDataFromDB");
fs.Flush();
fs.Close();
fs.Dispose();

// Copy file
File.Copy(sourceFileName, destinationFilename, true);
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

防止在ASP.NET 4.0中上载大文件

我们想在我们的网站上限制最大上传文件大小.我们已经在web.config中设置了适当的限制.我们遇到的问题是,如果上传了一个非常大的文件(例如1 GB),则在生成服务器端错误之前上传整个文件,并且无论文件是巨大的还是错误的类型都是不同的不.

有没有办法在实际上传之前检测挂起文件上传的大小?

这是我将相关请求限制为16 MB的相关web.config设置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <httpRuntime maxRequestLength="12288"/>
    </system.web>

    <system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="12582912"/>
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我已经尝试创建一个HTTP模块,这样我就可以在请求生命周期的早期拦截一个请求,但上传似乎甚至发生在以下BeginRequest事件之前HttpApplication:

public class UploadModule : IHttpModule
{
    private const int MaxUploadSize = 12582912;

    public void Init(HttpApplication context)
    {
        context.BeginRequest += handleBeginRequest;
    }

    public void Dispose()
    {
    }

    private void handleBeginRequest(object sender, EventArgs e)
    {
        // The upload takes place before this method gets called.

        var app = sender as HttpApplication; …
Run Code Online (Sandbox Code Playgroud)

asp.net iis-7 file-upload httpmodule httprequest

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

WP7如何在设备上调试飞机模式?

有没有办法在设备上调试飞机模式?我尝试在设备设置中启用飞行模式并禁用计算机上的互联网连接,但NetworkInterface.GetIsNetworkAvailable()仍然返回true.难道我做错了什么?

.net c# silverlight windows-phone-7

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

oncheck listener for javascript中的复选框

我的表单底部有这样的代码.

<p>
  <input type="checkbox" id="agreed">
  I agree to keep my Username and Password confidential and uphold 
  the integrity of this pharmacy
</p>
<input type="submit" id="submit" disabled class="formbutton button-primary" value="Go">
Run Code Online (Sandbox Code Playgroud)

我希望这个JavaScript中的监听器能够启用提交按钮.我知道它可能是错误的,但我的JavaScript看起来有点像这样

function track() {
    if ( document.getElementById("agreed").checked==true ) {
        document.getElementById("submit").removeAttribute("disabled");
    } else {
        document.getElementById("agreed").checked==false
    }
};
Run Code Online (Sandbox Code Playgroud)

html javascript dom

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