如何相对缩放用户控件的大小,如图像(在图像编辑器中).
示例(100%):
替代文字http://stegnar.com/pic/normalPicture.png
缩小UC(70%):
替代文字http://stegnar.com/pic/normalPicture70percent.png
我在图片编辑器中实现了这一点,但我想在WPF中.:)我需要这个来调整我的应用程序到不同的屏幕分辨率,而没有任何隐藏(没有滚动条).
最近我试图在我的应用程序中重用一些UI元素.当我开始使用WPF编程时,我被告知DataTemplate是重用UI元素的最佳方式.您可以为数据实体定义模板并在任何地方使用它.听起来很不错.但是,我也发现了一些缺点,特别是在与UserControl进行比较时.
DataTemplate的另一个问题是您必须清楚DataTemplate实例本身与DataTemplate内容实例之间的区别.DataTemplate只有一个"DataTemplate实例",可能有许多DataTemplate内容实例.让我用一个例子解释一下:
<DataTemplate>
<DataTemplate.Resources>
<my:User x:key="User1"/>
</DataTemplate.Resources>
<Grid MouseLeftButtonDown="OnMouseLeftButtonDown">
<Grid.Resources>
<my:User x:key="User2"/>
</Grid.Resources>
</Grid>
</DataTemplate>
public partial class CodeBehind
{
Point mousePos = new Point();
private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
mousePos = e.Pos...;
}
}
Run Code Online (Sandbox Code Playgroud)结果是:User1将只有一个实例,但是,一旦应用DataTemplate,将创建User2实例,这意味着如果多次应用datatemplate,User2将有许多实例.但是,与UserControl不同,字段"mousePos"不会有很多副本.如果正在应用的DataTemplate 100次,mousePos结构不会有100份,这意味着100个电网将使用的唯一一个mousePos结构字段作为同一时间,这可能会导致问题.在UserControl中,您定义的字段仅由控件使用.100个UserControl实例将具有100个字段副本.
也许我以错误的方式使用DataTemplate.任何评论表示赞赏.
最好的祝福,
扎克
我正在考虑为我的应用程序编写WPF用户控件.我在我的应用程序中使用MVVM.
用户控件可能需要可以设置为父视图的依赖项属性.当使用MVVM时,想法是父视图最终将在UserControlsDP与父视图的VM 之间创建绑定)
Dependency Properties需要在View类中创建,因为VM不会继承DependencyObject.这意味着在XAML代码中添加代码.
我想知道你是否可以就使用MVVM开发WPF应用程序时如何设计用户控件提出建议......
我需要帮助实现这样的循环进度条:

我应该如何通过增加Value财产来实施圆圈?
创建一个UserControl应该能够包含WPF中可用的任何可视子项的子项,子项显示在一个容器中,该容器是一个子容器UserControl.
我无法设法让我的容器中的孩子正确显示,我尝试了serval方式,并没有找到一种适用于设计师的方法.我也尝试使用ContentControl但没有显示任何内容.
首先,我找到了这个链接,我尝试了一些变化.我设法在正确的容器中显示内容,但它在设计器中不起作用,因为content-property是set-private而设计者想要覆盖它.将所有内容放在XAML中都有效,但在与设计师合作时这并不好.这可能是最喜欢的方式.
在此之后我试图ContentControl通过将它的Content-property绑定到UIElementCollection-type 的可绑定属性来使用.这种方法不会给设计师带来任何错误,但我必须承认我从未Button在容器中看到任何控件(例如a ).它保持空白但添加了孩子.
经过一段时间寻找一个简单快捷的解决方案后,我决定在这里寻求解决方案.我有点失望.如果微软可以将样本带入MSDN,那将非常有用.
我确信必须有一种简单的方法来存档.
感谢Andrei Gavrila和jberger,我将其存档以创建一个显示内容的节点(请参阅下面的代码),但仍有两个问题: - 没有设计师支持 - 边框(请参阅xaml)未在设计器中显示,并且在应用程序时未显示正在运行甚至没有保证金
public class NodeContent : ContentControl
{
static NodeContent()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(NodeContent), new FrameworkPropertyMetadata(typeof(NodeContent)));
}
}
public partial class Node : UserControl, INotifyPropertyChanged
{
UIElementCollection _Elements;
public event PropertyChangedEventHandler PropertyChanged;
public UIElementCollection NodeContent
{
get { return _Elements; }
set
{
_Elements = …Run Code Online (Sandbox Code Playgroud) 我正在构建一个WinForms应用程序窗口(窗体),我正在使用FlowLayoutPanel,并在其中添加了usercontrols.现在我一直在查看FlowLayoutPanel和UserControl的属性,但似乎无法找到与usercontrols之间的间距有关的任何内容.我希望usercontrols彼此更接近,如果只有几个像素.usercontrols本身在numericUpDown的任何一侧都没有空格.任何的意见都将会有帮助.
我的FlowLayoutPanel:

我有一个UserControl由Label(顶部),一个FlowLayoutPanel(填充,顶部流动和没有包裹)和一个Panel(底部)组成的.用户控件根据获取的内容列表创建许多控件,并将它们添加到FlowLayoutPanel.
如何才能UserControl正确调整大小以使其FlowLayoutPanel没有任何滚动条?我曾尝试使用的各种组合AutoSize,并AutoSizeMode在FlowLayoutPanel与UserControl本身,但我似乎无法得到它的工作.要么我最终得到的东西根本没有自我调整,要么它不会变得足够大或者它被压缩到几乎没有.
是否有任何代码可以提供有关如何实现Twitter for Android应用程序中显示的"快速操作"和"弹出"菜单的示例?
我发现在用户控件中保留属性值的唯一方法是使用ViewState.
public string Title {
get { return Convert.ToString(ViewState["Title"]); }
set { ViewState["Title"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
我不能说我对此印象非常深刻,因为用户控件的属性越多,你就越容易陷入ViewState.是否有更好的方法来坚持物业?
我有一个UserControl,它使用UserControl,以及其他控件.
在ascx文件中我有以下代码:
<%@ Register TagPrefix="tag" Namespace="some.name.space" Assembly="some.assembly" %>
<tag:control ID="test" runat="server" />
Run Code Online (Sandbox Code Playgroud)
在我的Page_Load方法中,我尝试在测试中设置属性,如下所示:
test.Text = "Hello World!";
Run Code Online (Sandbox Code Playgroud)
这实际上在我的用户控件中设置了文字控件的Text属性test.
这引发了一个异常:
你调用的对象是空的
当它试图设置
lblTest.Text = value;
Run Code Online (Sandbox Code Playgroud)
null为的对象是lblTest.
我没有正确添加用户控件吗?我应该 - 或者我必须 - Src在注册标签时指定属性吗?如果是这样,我必须注册我使用的每个用户控件?
这也导致usercontrol中没有控件加载,并且usercontrol中的所有控件都为null.
user-controls ×10
c# ×5
wpf ×5
.net ×2
asp.net ×2
winforms ×2
android ×1
android-view ×1
datatemplate ×1
dynamic ×1
mvvm ×1
popupwindow ×1
progress-bar ×1
properties ×1
scale ×1
viewstate ×1
wpf-controls ×1