标签: user-controls

在c#中的usercontrol中公开并引发子控件的事件

你好.我有一个包含文本框的UserControl.我想访问文本框的textchanged事件,但在usercontrol的事件属性中,我没有看到文本框的事件.如何使用C#从Winforms中公开公开的UserControl公开和处理子控件的特定事件.

c# user-controls childcontrol winforms

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

WPF:带有2个(或更多!)ContentPresenters的模板或UserControl,用于在'slots'中显示内容

我正在开发LOB应用程序,我将需要多个对话框窗口(并且在一个窗口中显示所有内容不是一个选项/没有意义).

我希望我的窗口有一个用户控件来定义一些样式等,并且可以有几个插入内容的插槽 - 例如,模态对话框窗口的模板将有一个内容插槽和按钮(这样用户就可以提供带有绑定ICommands的内容和按钮组.

我想有这样的东西(但这不起作用):

UserControl xaml:

<UserControl x:Class="TkMVVMContainersSample.Services.Common.GUI.DialogControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
    >
    <DockPanel>
        <DockPanel 
            LastChildFill="False" 
            HorizontalAlignment="Stretch" 
            DockPanel.Dock="Bottom">
            <ContentPresenter ContentSource="{Binding Buttons}"/>
        </DockPanel>
        <Border 
            Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
            Padding="8"
            >
            <ContentPresenter ContentSource="{Binding Controls}"/>
        </Border>
    </DockPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?我怎么告诉VS我的控件暴露了两个内容占位符,以便我可以像这样使用它?

<Window ... DataContext="MyViewModel">

    <gui:DialogControl>
        <gui:DialogControl.Controls>
            <!-- My dialog content - grid with textboxes etc... 
            inherits the Window's DC - DialogControl just passes it through -->
        </gui:DialogControl.Controls>
        <gui:DialogControl.Buttons>
            <!-- My dialog's buttons with wiring, like 
            <Button Command="{Binding HelpCommand}">Help</Button>
            <Button Command="{Binding CancelCommand}">Cancel</Button>
            <Button …
Run Code Online (Sandbox Code Playgroud)

wpf user-controls contentpresenter

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

WPF动画:绑定到故事板动画的"To"属性

我正在尝试创建一个与iPhone上的"幻灯片"按钮类似的按钮.我有一个动画调整按钮的位置和宽度,但我希望这些值基于控件中使用的文本.目前,它们是硬编码的.

到目前为止,这是我的工作XAML:

<CheckBox x:Class="Smt.Controls.SlideCheckBox"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
          xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
          xmlns:local="clr-namespace:Smt.Controls"
          xmlns:System.Windows="clr-namespace:System.Windows;assembly=PresentationCore"
          Name="SliderCheckBox"
          mc:Ignorable="d">
    <CheckBox.Resources>
        <System.Windows:Duration x:Key="AnimationTime">0:0:0.2</System.Windows:Duration>
        <Storyboard x:Key="OnChecking">
            <DoubleAnimation Storyboard.TargetName="CheckButton"
                             Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"
                             Duration="{StaticResource AnimationTime}"
                             To="40" />
            <DoubleAnimation Storyboard.TargetName="CheckButton"
                             Storyboard.TargetProperty="(Button.Width)"
                             Duration="{StaticResource AnimationTime}"
                             To="41" />
        </Storyboard>
        <Storyboard x:Key="OnUnchecking">
            <DoubleAnimation Storyboard.TargetName="CheckButton"
                             Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"
                             Duration="{StaticResource AnimationTime}"
                             To="0" />
            <DoubleAnimation Storyboard.TargetName="CheckButton"
                             Storyboard.TargetProperty="(Button.Width)"
                             Duration="{StaticResource AnimationTime}"
                             To="40" />
        </Storyboard>
        <Style x:Key="SlideCheckBoxStyle"
               TargetType="{x:Type local:SlideCheckBox}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type local:SlideCheckBox}">
                        <Canvas>
                            <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                              Content="{TemplateBinding Content}"
                                              ContentTemplate="{TemplateBinding ContentTemplate}"
                                              RecognizesAccessKey="True"
                                              VerticalAlignment="Center"
                                              HorizontalAlignment="Center" />
                            <Canvas>
                                <!--Background-->
                                <Rectangle Width="{Binding ElementName=ButtonText, Path=ActualWidth}"
                                           Height="{Binding ElementName=ButtonText, Path=ActualHeight}" …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf animation user-controls

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

如何在C#中向UserControl添加事件?

我有一个包含3个标签的UserControl.我想为它添加一个事件,当其中一个标签的文本发生变化时会发生这种事件.
我正在使用Visual Studio 2010

c# events user-controls winforms

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

为什么User(在User.Identity.Name中)在我的抽象基本控制器中为null?

我问了一个相关的问题但是搞砸了标题,没有人会理解它.由于我现在能够更准确地提出这个问题,我决定在一个新问题中重新制定它并关闭旧问题.对不起.

所以我想要做的是将数据(我的自定义用户的昵称存储在数据库中)传递给LoginUserControl.此登录通过Html.RenderPartial()从主页面呈现,因此我真正需要做的是确保每次调用时都出现ViewData ["UserNickname"].但我不想在每个控制器的每个动作中填充ViewData ["UserNickname"],所以我决定使用这种方法并创建一个抽象的基本控制器,它将为我完成工作,如下所示:

public abstract class ApplicationController : Controller
    {
        private IUserRepository _repUser;

        public ApplicationController()
        {
            _repUser = RepositoryFactory.getUserRepository();
            var loggedInUser = _repUser.FindById(User.Identity.Name); //Problem!
            ViewData["LoggedInUser"] = loggedInUser;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这样,无论我的推导控制器做什么,用户信息都已经存在.

到现在为止还挺好.现在出现问题:

我无法调用User.Identity.Name,因为User它已经为空.在我的所有派生控制器中都不是这种情况,因此这是抽象基本控制器特有的.

我在代码中的另一个地方通过FormsAuthentication设置User.Identity.Name,但我认为这不是问题 - afaik User.Identity.Name可以为null,但不是User本身.

在我看来HttpContext不可用(因为也是null ;-)而且我在这里错过了一个简单而重要的观点.任何人都可以给我一些提示吗?我真的很感激.

c# asp.net-mvc user-controls controller httpcontext

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

asp.net用户控件,让htmlAnchor解析为href ="#"

如何让服务器控件HTMLAnchor具有href ="#".它不断解析控制路径的"#".

<a href="#" runat="server" />
resolves to: <a href="../ControlPath/#">
Run Code Online (Sandbox Code Playgroud)

我似乎无法得到谷歌搜索给我我想要的结果所以我想我会在这里问.

编辑:语法.

删除runat服务器不是一个选项.它在后端被操纵,这只是一个简化.

c# asp.net user-controls

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

UserControl中的自定义属性(*.ascx)?

假设我有这样的用户控件

<MyTag:MyWidget runat="server" />
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以做类似的事情

<MyTag:MyWidget runat="server" MemberHeight="400" PublicHeight="200" />
Run Code Online (Sandbox Code Playgroud)

所以在MyWidget.ascx中我可以拥有

<div height="<%=IsLoggedIn ? MemberHeight : PublicHeight%>">
Run Code Online (Sandbox Code Playgroud)

或类似的东西...?因为我希望在使用此小部件的每个页面中高度不同.

c# asp.net user-controls

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

可以将值或参数传递给用户控件吗?

我有一段时间没有使用过这些.我只是想知道是否可以从aspx页面向用户控件传递值或参数.假设您注册了一个控件,然后使用类似的东西来使用它

<uc1:SampleUserControl id="SampleUserControl1" runat="server"></uc1:SampleUserControl>
Run Code Online (Sandbox Code Playgroud)

样式语法.你能在那里传递参数吗?

asp.net user-controls

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

XML名称空间"yyy"中不存在标记"xxx"/找不到引用

我有一个winform usercontrol,而不是我想添加到wpf项目.

我添加了相关的引用(WindowsFormsIntegration,SystemWindowsForms和我的用户控件dll)并在我的XAML中添加了这一行:

xmlns:MyControl="clr-namespace:xx.xx.xx;assembly=xx.xx"
Run Code Online (Sandbox Code Playgroud)

然后这个:

<WindowsFormsHost><MyControl:control></MyControl:control></WindowsFormsHost>
Run Code Online (Sandbox Code Playgroud)

当我写"MyControl:"时,"控件"是自动显示的,这意味着VS识别控件并且所有引用都添加正确...但是当我编译项目时,这给了我标题中的错误.

编辑

当我编译所有项目时我非常奇怪我有错误"类型或名称空间名称"xx'找不到..."但我添加了所有引用并且VS识别命名空间以便编译器为什么不要找不到它们?如果这个问题得到解决我相信其他问题也会消失.

wpf xaml user-controls reference

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

如何相对缩放用户控件的大小?

如何相对缩放用户控件的大小,如图像(在图像编辑器中).

示例(100%):

替代文字http://stegnar.com/pic/normalPicture.png

缩小UC(70%):

替代文字http://stegnar.com/pic/normalPicture70percent.png

我在图片编辑器中实现了这一点,但我想在WPF中.:)我需要这个来调整我的应用程序到不同的屏幕分辨率,而没有任何隐藏(没有滚动条).

wpf user-controls scale

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