标签: user-controls

在ASMX Web服务中使用Server.Execute()呈现UserControl的问题

任何人都可以解释为什么Server.Execute()要求我呈现的UserControls包含<form>标签(或者,我正在做错的是使Server.Execute()在我的UserControls中需要表单标签)?

我创建了一个ASMX服务,通过JQuery + JSON动态加载UserControls,如下所示:

ControlService.asmx

<%@ WebService Language="C#" CodeBehind="ControlService.asmx.cs" Class="ManagementConcepts.WebServices.ControlService" %>
Run Code Online (Sandbox Code Playgroud)

ControlService.cs

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class ControlService : System.Web.Services.WebService
{
    private string GetControl(String controlName, String ClassId)
    {
        Page page = new Page();
        UserControl ctl = (UserControl)page.LoadControl(controlName);

        page.Controls.Add(ctl);
        StringWriter writer = new StringWriter();
        HttpContext.Current.Server.Execute(page, writer, false);
        return writer.ToString();
    }
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string GetSimpleControl(string ClassId)
    {
        return GetControl("SimpleControl.ascx", ClassId);
    }
}
Run Code Online (Sandbox Code Playgroud)

我通过以下JQuery将控件加载到一个页面中,用来自服务返回的HTML替换id为ContentPlaceholder:

JQueryControlLoadExample.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JQueryControlLoadExample.aspx.cs" Inherits="ControlService_Prototype._Default" %>

<!DOCTYPE html …
Run Code Online (Sandbox Code Playgroud)

c# asp.net user-controls asmx

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

WPF:如何动态加载用户控件?

如何动态地在基于WPF的窗口中加载基于WPF的用户控件(在运行时使用代码)?

wpf user-controls

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

如何让我的WPF用户控件的依赖项属性更新我的视图模型?

我正在尝试创建一个具有要绑定的依赖项属性的用户控件.在内部我有一个ComboBox绑定到这些相同属性的绑定,但绑定只能以一种方式工作.在ComboBox从罢了ItemsSource,但SelectedItem没有更新回到视图模型,我结合.

一个简化的例子:

这是与用户控件绑定的视图模型:

public class PeopleViewModel : INotifyPropertyChanged
{
    public PeopleViewModel()
    {
        People = new List<string>( new [] {"John", "Alfred","Dave"});
        SelectedPerson = People.FirstOrDefault();
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private IEnumerable<string> _people;
    public IEnumerable<string> People 
    { 
        get { return _people; } 
        set
        {
            _people = value;
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("People"));
            }
        }
    }

    private string _selectedPerson;
    public string SelectedPerson 
    {
        get { return _selectedPerson; }
        set 
        { 
            _selectedPerson = …
Run Code Online (Sandbox Code Playgroud)

wpf binding user-controls

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

有没有办法检测用户控件外的鼠标点击?

我正在创建一个自定义下拉框,我想在下拉框外单击鼠标时进行注册,以便隐藏它.是否可以检测到控件外的点击?或者我应该在包含的表单上制作一些机制,并在任何下拉框打开时检查鼠标点击?

用户控制

c# user-controls mouseevent winforms

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

x:在用户控件库中找不到类型

我正在尝试ResourceDictionary在WPF UserControl库项目中创建一个内部.当我添加以下样式时:

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="{StaticResource ResourceKey=GreyBrush}"/>
    <Setter Property="BorderBrush" Value="{StaticResource ResourceKey=LightBlueBrush}"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="{StaticResource ResourceKey=OrangeBrush}"/>
        </Trigger>
        <EventTrigger RoutedEvent="Click">
            <BeginStoryboard>
                <Storyboard>
                    <ColorAnimation Storyboard.TargetProperty="Background.Color" To="{StaticResource ResourceKey=LightOrange}" Duration="0:0:.1"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

The type 'x:Type' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.
Run Code Online (Sandbox Code Playgroud)

我宣布x为:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Run Code Online (Sandbox Code Playgroud)

这在我在WPF应用程序项目中创建资源字典时有效,但不在UserControl库项目中创建.知道为什么吗?

c# wpf user-controls resourcedictionary

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

用户控制事件的设计时间查看

我创建了一个继承自System.Windows.Forms.UserControl的WinForms控件...我在控件上有一些自定义事件,我希望我的控件的使用者能够看到.在设计时,我无法让我的事件显示在"属性"窗口的"事件"选项卡中.这意味着分配事件的唯一方法是以编程方式编写

myUserControl.MyCustomEvent += new MyUserControl.MyCustomEventHandler(EventHandlerFunction);
Run Code Online (Sandbox Code Playgroud)

这对我来说很好,我猜,但当其他人来使用我的UserControl他们不会知道这些事件存在(除非他们读图书馆doco ...是的正确).我知道事件将显示使用Intellisense,但如果它也可以在属性窗口中显示它会很棒.

c# user-controls winforms

14
推荐指数
1
解决办法
9045
查看次数

如何在Canvas中拖动UserControl

我正在编写我的第一个WPF应用程序.我有一个Canvas,用户可以在其中添加包含表单的UserControl子类.用户应该能够在Canvas周围拖动这些UserControl.使用WPF执行此操作的最佳做​​法是什么?谢谢.

c# wpf user-controls canvas drag

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

选择全部按钮WPF DataGrid

我想知道是否有禁用WPF DataGrid顶角的select all选项....这似乎只发生在我向WPF中的fixeddocument添加UserControl时.

提前致谢,

U.

wpf select user-controls datagrid

14
推荐指数
2
解决办法
8538
查看次数

如何在设计时调试?

我用UserControl创建了一个自定义ListView.当鼠标进入ColumnHeader时,它应该在设计时改变颜色.

它工作,但我需要调试代码.如何在设计时调试代码?

示例图片

c# debugging user-controls

14
推荐指数
1
解决办法
5575
查看次数

如何让智能手机像滚动winforms触摸屏应用程序(滚动面板)

在网上搜索完文章后,我想出了一个基于winforms的触摸屏应用程序的设计,需要像滚动一样的智能手机.该应用程序本身将在平板电脑或触摸屏桌面上运行.

  • 我把我要滚动的所有东西放在面板上.
  • 将autoscroll设置为true(将显示滚动条)
  • 现在将整个面板放在一个组合框中
  • 缩小组合框,直到隐藏滚动条(视觉上隐藏,不可见= false)

现在我被困在了有趣的部分.我想我必须在面板上处理mousedown,mouseup和mousemove以设置自动滚动位置,以便当有人触摸面板并拖动时,它会滚动魔术.请帮助填写以下方法存根中的几行代码.autoscrollposition上的msdn doc非常令人困惑,因为它返回负数,但需要设置为abs,而不是.

Point mouseDownPoint;
Point mouseUpPoint;
Point mouseDragPoint;
 private void myPanel_MouseDown(object sender, MouseEventArgs e)
 {
    this.mouseDownPoint = e.Location;
    Console.WriteLine("Mouse down at {0}", e.location);
 }

 private void myPanel_MouseUp(object sender, MouseEventArgs e)
 {
    this.mouseUpPoint = e.Location;
    this.mouseDownPoint = new Point(); //will set for IsEmpty check
    Console.WriteLine("Mouse Up at {0}", e.location);
 }

 private void myPanel_MouseMove(object sender, MouseEventArgs e)
 {
    Console.WriteLine("Mouse at {0}", e.location);
    if (mouseDownPoint.IsEmpty()) //finger is off the touchscreen
       return;
    myPanel.Autocrollposition = …
Run Code Online (Sandbox Code Playgroud)

c# vb.net user-controls scroll touchscreen

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