标签: user-controls

VS设计师问题.如何更改父控件

VS初学者问题.如何更改控件的父控件?例.我在表单上有TabControl,对齐以适应所有表单.我双击toolStrip控件来创建菜单而不是表单toolStrip被添加到TabControl.如何将ToolStrip从TabControl移动到Form.我可以使用复制/粘贴,但这并不总是有效.

user-controls visual-studio-2010

28
推荐指数
1
解决办法
7094
查看次数

WPF中UserControl中DesignWidth和Width之间的差异

当我UserControl在WPF中创建一个新的时,studio会创建一些XAML:

<UserControl x:Class="MOG.Objects.Date.Calender"
             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" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <Grid>

    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

UserContol我还可以添加Width属性.DesignWidth和之间有什么区别Width

c# wpf xaml user-controls

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

为什么我不能在同一个程序集中使用UserControl上的Name属性?

当我创建WPF UserControl并尝试使用它时,我得到以下编译器错误:

由于'UserControl1'在同一程序集中实现,因此必须设置x:Name属性而不是Name属性.

关于如何解决它的消息很清楚,但它的原因是什么?为什么我不能Name在这里使用?

wpf xaml user-controls

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

WPF Window.Close()不会触发UserControl.Unloaded事件

我有一个包含自定义UserControl的窗口.UserControl需要知道何时关闭包含它的Window,以便它可以终止一个线程.

我最好的猜测是如何实现这一点是处理UserControl的Unloaded事件.但是,Unloaded事件似乎仅在用户实际单击以关闭窗口时触发,而不是在我以编程方式调用窗口上的Close()方法时触发.

为了便于参考,以下是我的代码的一些相关部分.

MyWindow.xaml:

<Window x:Class="Namespace.MyWindow"
        xmlns:controls="clr-namespace:Namespace.Controls">
    <controls:MyControl/>
</Window>
Run Code Online (Sandbox Code Playgroud)

MyControl.xaml:

<UserControl x:Class="Namespace.Controls.MyControl"
             Unloaded="UserControl_Unloaded"/>
    <!-- Stuff -->
</UserControl>
Run Code Online (Sandbox Code Playgroud)

MyControl.xaml.cs:

void UserControl_Unloaded(object sender, RoutedEventArgs e)
{
    // Stop the thread.
}
Run Code Online (Sandbox Code Playgroud)

所以回顾一下,当我关闭"手动"窗口(alt-F4,单击红色"X"等)时,上面的UserControl_Unloaded()方法被调用,但不是来自我调用的代码中的其他地方myWindow.Close().有任何想法吗?

wpf events user-controls

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

运行时Visual Studio 2010 Designer错误

我正在使用VS2010并且如果我在设计器模式下打开表单并运行我的应用程序,则设计器选项卡将不再显示表单设计器,而是将显示错误(并且仅通过重新启动IDE来修复)说:

"为了防止在加载设计器之前可能丢失数据,必须解决以下错误:"

1错误:

"设计器无法显示此文件,因为其中的任何类都无法设计.设计人员检查了文件中的以下类:##### ---基类#####不能已确保已引用程序集并且已构建所有项目"

然后我显示以下调用堆栈:

在System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager经理)
在System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager经理)
在Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
在System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost主机)

非常感谢任何帮助,这真的很烦人.

谢谢,

乔尔.

user-controls designer visual-studio-2010 winforms

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

WPF DataGrid - 为什么是额外的列

我有一个DataGrid用于显示一些数据的WPF应用程序.当我运行该程序时,还有一个附加列,如下所示: 在此输入图像描述

这是我在VS2010中设计时的样子在此输入图像描述

我已关闭数据网格上的AutoGenerateColumns并单独指定列(这是用户控件):

<Grid Margin="10,10,10,10">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>


    <DataGrid x:Name="EmployeeHours" AutoGenerateColumns="False" ItemsSource="{Binding EmployeeHoursLastWeek}" Width="Auto">
        <DataGrid.Columns>
            <DataGridTextColumn Header="PerceptionistID" Binding="{Binding PerceptionistID}" Width="100" />
            <DataGridTextColumn Header="Week Of" Binding="{Binding WeekOf, StringFormat={}{0:MM/dd/yyyy}}" Width="75" />
            <DataGridTextColumn Header="Regular Hours" Binding="{Binding WorkHours}" Width="100" />
            <DataGridTextColumn Header="PTO Hours" Binding="{Binding PTOHours}" Width="100" />
            <DataGridTextColumn Header="Holiday Hours" Binding="{Binding HolidayHours}" Width="100" />
        </DataGrid.Columns>
    </DataGrid>

    <Button x:Name="ImportHoursButton" Content="Import Hours" 
            Command="{Binding ImportHoursCommand}" 
            Height="25" Width="100" Margin="10"
            VerticalAlignment="Bottom" HorizontalAlignment="Right"                
            Grid.Row="1" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

我还有一个MainWindowView,它使用注入来显示视图(这是一个常规窗口):

<Window x:Class="Sidekick.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:Sidekick.ViewModel"
        xmlns:vw="clr-namespace:Sidekick.View"
        Title="Sidekick"> …
Run Code Online (Sandbox Code Playgroud)

wpf user-controls wpfdatagrid c#-4.0

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

C#generics usercontrol

我想定义以下控件:

public partial class ObjectSelectorControl<T> : UserControl where T : class 
Run Code Online (Sandbox Code Playgroud)

问题是设计师无法解决这个问题.这个问题有解决方法吗?

c# generics user-controls

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

在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万
查看次数