【问题标题】:C# WPF UserControl based on Uniformgrid基于 Uniformgrid 的 C# WPF UserControl
【发布时间】:2016-10-16 17:36:35
【问题描述】:

我正在尝试在 UniformGrid 的基础上制作用户控件。使用office时出现错误:属性'Content' is set more than once

AdaptiveLayout.xaml

<UserControl x:Class="App.Controls.AdaptiveLayout"
             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:element="clr-namespace:App.Controls"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <UniformGrid SizeChanged="UniformGrid_SizeChanged">
        <ContentPresenter></ContentPresenter>
    </UniformGrid>

</UserControl>

MainWindow.xaml

...
<controls:AdaptiveLayout TransferringAfter="190">
         <controls:TextBoxWrapControl LabelContent="FirstName"></controls:TextBoxWrapControl>
         <controls:TextBoxWrapControl LabelContent="LastName"></controls:TextBoxWrapControl>
 </controls:AdaptiveLayout>
...

【问题讨论】:

  • 当你想“在UniformGrid的基础上做用户控件”并想给它添加子元素时,你应该解释为什么你不能直接使用UniformGrid(而不是你的控件) .你到底想达到什么目的?
  • To 元素是浮动的,并且在您更改内容宽度时同时被拉伸。 s3.postimg.org/wc2dqkayb/323.png
  • 你应该创建一个custom panel

标签: c# wpf xaml uniformgrid


【解决方案1】:

您在用户控件中使用UniformGrid,但这实际上并没有它合二为一。这就是为什么它在您的 MainWindow.xaml 中抱怨您为 AdaptiveLayout 设置了多个内容的原因。 您可以尝试扩展 UniformGrid 而不是使用它。

【讨论】:

  • 这不是巫术。只需创建一个扩展 UniformGrid 的新类,就像使用任何其他使用继承的类一样。然后,您可以在构造函数中为 SizeChanged 事件注册自己的事件处理程序,因为这似乎就是您所追求的。
猜你喜欢
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2010-12-03
  • 2010-10-27
  • 1970-01-01
相关资源
最近更新 更多