【问题标题】:Data Sources Window : override a UserControl's default size of 100*100数据源窗口:覆盖用户控件的默认大小 100*100
【发布时间】:2013-05-28 01:39:49
【问题描述】:

为数据源窗口中的属性指定自定义控件时,将该对象拖放到窗口上会创建一个大小为 100*100 的控件。 (控件中没有硬编码大小。)

尝试匹配标签的 Horizo​​ntalContentAlignment 和 VerticalContentAlignment 值,因为它们似乎是唯一不同的值,但控件大小无差别 100*100。 (除非我手动修复它)

向导生成的代码:

<Label Content="Url:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="2" VerticalAlignment="Center"/>
<HyperLinkControl x:Name="urlHyperLinkControl2" Grid.Column="1" HorizontalAlignment="Left" Height="100" Margin="3" Grid.Row="2" Uri="{Binding Url}" VerticalAlignment="Center" Width="100"/>

是否需要在我的 UserControl 中定义其他属性以覆盖默认大小?

向导生成的 XAML:

<Grid x:Name="grid1" DataContext="{StaticResource biographyViewSource}" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Label Content="Site:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="0" VerticalAlignment="Center"/>
    <TextBlock x:Name="siteTextBlock1" Grid.Column="1" HorizontalAlignment="Left" Margin="3" Grid.Row="0" Text="{Binding Site}" VerticalAlignment="Center"/>
    <Label Content="Text:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="1" VerticalAlignment="Center"/>
    <TextBlock x:Name="textTextBlock1" Grid.Column="1" HorizontalAlignment="Left" Margin="3" Grid.Row="1" Text="{Binding Text}" VerticalAlignment="Center"/>
    <Label Content="Url:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="2" VerticalAlignment="Center"/>
    <SharpControls:HyperLinkControl x:Name="urlHyperLinkControl2" Grid.Column="1" HorizontalAlignment="Left" Height="100" Margin="3" Grid.Row="2" Uri="{Binding Url}" VerticalAlignment="Center" Width="100"/>
    <Label Content="Attribution:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="3" VerticalAlignment="Center"/>
    <TextBlock x:Name="attributionTextBlock1" Grid.Column="1" HorizontalAlignment="Left" Margin="3" Grid.Row="3" Text="{Binding License.Attribution}" VerticalAlignment="Center"/>
    <Label Content="Type:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="4" VerticalAlignment="Center"/>
    <TextBlock x:Name="typeTextBlock1" Grid.Column="1" HorizontalAlignment="Left" Margin="3" Grid.Row="4" Text="{Binding License.Type}" VerticalAlignment="Center"/>
    <Label Content="Url:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="5" VerticalAlignment="Center"/>
    <SharpControls:HyperLinkControl x:Name="urlHyperLinkControl3" Grid.Column="1" HorizontalAlignment="Left" Height="100" Margin="3" Grid.Row="5" Uri="{Binding License.Url}" VerticalAlignment="Center" Width="100"/>
</Grid>

【问题讨论】:

  • 你必须是地球上唯一一个真正使用 Visual Studio 设计器进行 WPF 开发的人。
  • 大声笑,实际上我使用 Blend,但这对于创建基本模板非常方便 :-)
  • 发布您的所有 UserControl XAML 代码。
  • @Aybe 如果您认为在完成设计器之后,您需要花费 2 倍的时间来修复由它生成的蹩脚的 XAML,那么您就不会这样了。
  • @HighCore:真的! (我现在正在 Blend 上制作这个)

标签: wpf xaml user-controls


【解决方案1】:

在您的SharpControls:HyperLinkControl 中,您已设置属性Height=100。只需删除此属性即可。

【讨论】:

    猜你喜欢
    • 2015-04-30
    • 1970-01-01
    • 2011-05-19
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多