wpf自定义控件改变Margin后显示不全

修为有点低 2018-01-11 01:11:48
我自定义了一个控件,控件名:test,里面就放了一个ProgressBar对象。
<Grid>
<ProgressBar Name="mBar"
Width="{Binding ElementName=MainWin,Path=ActualWidth}"
Height="{Binding ElementName=MainWin,Path=ActualHeight}"
></ProgressBar>
</Grid>

然后在测试窗口使用:
<local:test x:Name="Bar1" Width="300" Height="50" Margin="96,62,121,207"></local:test>
<local:test x:Name="Bar2" Width="300" Height="50"></local:test>

显示结果是:

很明显上面那个进度条是移动后的,下边和右边都显示不全。
请问下大神,这是怎么回事啊?
...全文
1279 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
修为有点低 2018-01-23
  • 打赏
  • 举报
回复
研究后去掉HorizontalAlignment和VerticalAlignment可以在使用的时候调整控件大小,不过在使用的时候,也不能使用宽高,也只能用Margin 另外在研究中发现,如果要做到自定义控件随窗口大小等比变化,使用grid的布局其实挺好的。 如下代码就将一个grid分成了三行两列,每一个格子里都可以放其他控件: <Grid.ColumnDefinitions> <ColumnDefinition Width="0.352*"/> <ColumnDefinition Width="0.648*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="0.3*"></RowDefinition> <RowDefinition Height="0.4*"></RowDefinition> <RowDefinition Height="0.3*"></RowDefinition> </Grid.RowDefinitions>
xinbada1985 2018-01-16
  • 打赏
  • 举报
回复
HorizontalAlignment="Left" VerticalAlignment="Top" 这两个只是控件的显示位子,是左上而已,个人感觉意义应该没有那么大!还是应该有其他东西影响了表示!
修为有点低 2018-01-14
  • 打赏
  • 举报
回复
额!!!! 好像 还是有点问题,待我再研究下,不能误人子弟啊!
修为有点低 2018-01-14
  • 打赏
  • 举报
回复
引用 1 楼 xinbada1985 的回复:
是因为你把两个文本框的高度和宽度设定为固定的了!加完Margin后留给文本框的空间不够大了
问题解决了!其实是因为HorizontalAlignment="Left" VerticalAlignment="Top" 这两个属性导致的,有这两个属性的话, 会导致设计的 Margin 的右边和下边失效的样子。 去掉这个两个属性就正常了。 所以个人建议是:在做自定义控件的时候,最好不要定义这两个属性,而直接使用 Margin
修为有点低 2018-01-12
  • 打赏
  • 举报
回复
不是图片,是自定义控件中放了个按钮。

如果将自定义控件拉大,大于其设计大小是可以显示出,但是感觉这样很不合理啊。
我按照设计大小使用,不应该会被缩小才对啊。
xinbada1985 2018-01-12
  • 打赏
  • 举报
回复
首先控件的样式是图片吗?如果是图片的换!也有可能是图片太大,你控件设置小了造成的缺失,有很多种情况!你先把你的控件设置大一点看看是不是全的
修为有点低 2018-01-12
  • 打赏
  • 举报
回复
引用 1 楼 xinbada1985 的回复:
是因为你把两个文本框的高度和宽度设定为固定的了!加完Margin后留给文本框的空间不够大了


好像还是不对啊,在使用的时候只用margin调整自定义控件的大小为其设计大小,然后运行,还是缺失了右边和下边部分。


xinbada1985 2018-01-11
  • 打赏
  • 举报
回复 1
是因为你把两个文本框的高度和宽度设定为固定的了!加完Margin后留给文本框的空间不够大了

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧