找回密码
 立即注册

QQ登录

只需一步,快速开始

还没想好

论坛元老

5

主题

38

帖子

1万

积分

论坛元老

积分
14301

活字格认证

最新发帖
还没想好
论坛元老   /  发表于:2015-3-29 19:50  /   查看:7121  /  回复:8
如题 设置VerticalAlignment和HorizontalAlignment为Center不能得到标题中想要的效果。。。

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-3-30 18:04:00
沙发
回复 1楼还没想好的帖子

请问你是如何将C1TabControl进行floating的?
这两个属性设置的是C1TabControl在Grid中的位置。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-3-30 21:07:00
板凳
是通过style里面触发器的形式设置他floating的   例如
  1. <Grid x:Name="DockGrid">
  2.         <c1:C1DockControl>
  3. <c1:C1DockTabControl x:Name="CustomLogoTabControl" ShowSingleTab="False" ShowMenu="False"
  4.                                  CanUserDock="False" CanUserHide="False" HeaderBackground="#1a1a1a" HeaderForeground="#FFFFFF"
  5.                                  FontSize="14" CanUserReorder="False">
  6.                 <c1:C1DockTabControl.Style>
  7.                     <Style TargetType="c1:C1DockTabControl">
  8.                         <Setter Property="DockMode" Value="Hidden" />
  9.                         <Style.Triggers>
  10.                             <MultiDataTrigger>
  11.                                 <MultiDataTrigger.Conditions>
  12.                                     <Condition
  13.                                             Binding="{Binding Source={StaticResource Locator}, Path=VPro_Header.SelectConfigCtrl}"
  14.                                             Value="CustomLogoPropertyWindow" />
  15.                                     <Condition
  16.                                             Binding="{Binding Source={StaticResource Locator},Path=VPro_Header.IsConfigMode}"
  17.                                             Value="true" />
  18.                                 </MultiDataTrigger.Conditions>
  19.                                <Setter Property="DockMode" Value="Floating" />
  20.                                 <Setter Property="DockWidth"
  21.                                             Value="{Binding Converter={StaticResource PropertyWindowWidthConverter}, ElementName=DockGrid, Path=ActualWidth}" />
  22.                                 <Setter Property="HeaderBackground" Value="#1a1a1a"/>
  23.                                 <Setter Property="HeaderForeground" Value="#FFFFFF"/>
  24.                                 <Setter Property="FontSize" Value="14"/>
  25.                             </MultiDataTrigger>
  26.                         </Style.Triggers>
  27.                     </Style>
  28.                 </c1:C1DockTabControl.Style>
  29.                 <c1:C1TabItem x:Name="CustomLogoItem" Header="Properties">
  30.                     <config:CustomLogo />
  31.                 </c1:C1TabItem>
  32.             </c1:C1DockTabControl>
  33. </c1:C1DockControl>
  34. </Grid>
复制代码


请问怎么才能让他floating的位置在grid的中央位置 现在每次出来的位置都貌似是随机的。。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-31 14:55:00
地板
回复 3楼还没想好的帖子

需要自己计算展示的中心位置,然后设置浮动的DockTableControl的Left和Top属性,使得它展示在你需要的位置。
我调用了C1DockControl的Loaded事件,写了段代码,给你做参考:
  1.    private void C1DockControl_Loaded(object sender, RoutedEventArgs e)
  2.         {
  3. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(CustomLogoTabControl.DockMode&#160;==&#160;DockMode.Floating)
  4. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
  5. &#160;
  6. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;foreach&#160;(var&#160;item&#160;in&#160;Application.Current.Windows)
  7. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
  8. &#160;
  9. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&#160;wpfwindow&#160;=&#160;item&#160;as&#160;WPFWindow;
  10. &#160;
  11. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(wpfwindow&#160;!=&#160;null)
  12. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{&#160;
  13. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;wpfwindow.Left&#160;=&#160;300;&#160;
  14. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;wpfwindow.Top&#160;=&#160;100;&#160;
  15. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;
  16. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;
  17. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
  18.         }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-4-1 11:08:00
5#
Hi 版主 根据你的方法现在我可以设置窗口位置了 谢谢。  但是现在还有一个小问题,就是用loaded事件设置窗口位置的时候 实际上窗口已经渲染过 这时去设置窗口位置会出现窗口在原来位置闪一下后出现在新位置。。。。请问有什么方法可以解决这个小问题吗   谢谢。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-1 15:29:00
6#
回复 5楼还没想好的帖子

因为是在loaded这个时机里去设置的,可以改在一些早的时机。
比如DockModeChanged这类事件,具体还要根据你的需求去查找。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-4-1 17:09:00
7#
Hi 版主 谢谢   我理解你的意思 目前我这边的情况是当主窗体load进来并且tab窗体的DockMode是hidden的时候 Application.Current.Windows 里面是没有tab窗体的   只有当把tab窗体的DockMode设置为Floating的时候才会出现在Application.Current.Windows中   但是这时调用loaded就会出现上述情况。 我没有找到C1tabcontrol里有ModeChanging的事件
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-4-1 18:26:00
8#
Hi 版主,目前我已经基本解决问题。 我调用c1:C1DockControl里面的ItemDockModeChanged事件  当窗体的DockMode从Hidden变为Floating的时候会触发  但这时已经可以在Application.Current.Windows里检测到相关窗体,同时相关窗体的isActive是false,在这个时候去设置相关窗体的位置。这样做还是会有闪烁 只是不会像以前那样在原来的位置闪烁后出现在正确的位置,现在的情况是会在正确的位置闪烁下,可以接受。
谢谢 请结贴~~

评分

参与人数 1金币 +100 收起 理由
Alice + 100 金币奖励

查看全部评分

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-2 10:17:00
9#
回复 8楼还没想好的帖子

谢谢你的反馈。
你对此问题的深入研究精神,也值得赞一个。牛

稍后我会送上金币奖励,作为你自己研究问题和反馈给我们的奖励。

也欢迎就本次服务质量评分。

评分

参与人数 1满意度 +5 收起 理由
还没想好 + 5 谢谢给予启发

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部