C# 命令在wpf中的边界控制范围内无效

C# 命令在wpf中的边界控制范围内无效,c#,wpf,C#,Wpf,我正在将窗口拖动事件绑定到边界控件以移动窗口。属性是本地的:EnableDragHelper.EnableDrag=“True”您可以检查下面的设计 <Border Grid.Row="0" BorderThickness="1" BorderBrush="Black" Background="#467EAF" Name="borderHeader" local:EnableDragHelper.EnableDrag="True">

我正在将窗口拖动事件绑定到边界控件以移动窗口。属性是本地的:EnableDragHelper.EnableDrag=“True”您可以检查下面的设计

           <Border Grid.Row="0" BorderThickness="1" BorderBrush="Black" Background="#467EAF" Name="borderHeader" local:EnableDragHelper.EnableDrag="True">
                <StackPanel Grid.Row="0" VerticalAlignment="Center">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*"></RowDefinition>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                            <ColumnDefinition Width="*"></ColumnDefinition>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                            <ColumnDefinition Width="100"></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <Label Grid.Row="0" Grid.Column="0"  HorizontalAlignment="Left" VerticalAlignment="Center" Content="{Binding InspectionHistoryModel.CurrentDateTime,Mode=TwoWay}" FontWeight="Bold" Foreground="White" FontSize="18" Margin="5,0,0,0"></Label>
                        <TextBlock Grid.Row="0" Grid.Column="1" HorizontalAlignment="Left" Name="popupTaregetextblock" Margin="10,0,0,0" VerticalAlignment="Center">  
                        <Hyperlink FontSize="20"  Foreground="White" Command="{Binding ShowHideHeaderPopupCommand}"  CommandParameter="onDuty"><TextBlock Text="{Binding InspectionHistoryModel.HeaderDutyText, Mode=TwoWay}" VerticalAlignment="Center" FontWeight="Bold" FontSize="18" Foreground="White"> </TextBlock></Hyperlink>
                        </TextBlock>
                    </Grid>
                </StackPanel>
            </Border>

超链接的Comamnd(放在边框内)不起作用。怎么可能呢?拖动代码是

   private static void UIElementOnMouseMove(object sender, MouseEventArgs mouseEventArgs)
    { 
        var uiElement = sender as UIElement;
        if (uiElement != null)
        {
            if (mouseEventArgs.LeftButton == MouseButtonState.Pressed)
            {
                DependencyObject parent = uiElement;
                int avoidInfiniteLoop = 0;
                // Search up the visual tree to find the first parent window.
                while ((parent is Window) == false)
                {
                    parent = VisualTreeHelper.GetParent(parent);
                    avoidInfiniteLoop++;
                    if (avoidInfiniteLoop == 1000)
                    {
                        // Something is wrong - we could not find the parent window.
                        return;
                    }
                }
                var window = parent as Window;

                if (window.WindowState == WindowState.Maximized)
                {

                    var mouseX = mouseEventArgs.GetPosition(window).X;
                    var width = window.RestoreBounds.Width;
                    var x = mouseX - width / 2;

                    if (x < 0)
                    {
                        x = 0;
                    }
                    else
                        if (x + width > SystemParameters.PrimaryScreenWidth)
                        {
                            x = SystemParameters.PrimaryScreenWidth - width;
                        }
                    window.WindowState = WindowState.Normal;
                    window.Left = x;
                    window.Top = 0;

                //    window.Width = window.ActualWidth;
                //    window.Height = window.ActualHeight;
                //    window.Left = 0;
                //    window.Top = 0;
                //    window.WindowStartupLocation = WindowStartupLocation.Manual;
                //    window.WindowState = WindowState.Normal;

                }

                window.DragMove();
            }
        }
    }
private static void UIElementOnMouseMove(对象发送方,MouseEventArgs MouseEventArgs)
{ 
var uiElement=发送方作为uiElement;
if(uiElement!=null)
{
if(mouseEventArgs.LeftButton==MouseButtonState.Pressed)
{
DependencyObject父元素=uiElement;
int avoidfiniteloop=0;
//向上搜索可视化树以查找第一个父窗口。
while((父窗口)==false)
{
父级=VisualTreeHelper.GetParent(父级);
AvoidFiniteLoop++;
如果(AvoidFiniteLoop==1000)
{
//出现问题-我们找不到父窗口。
返回;
}
}
var窗口=父窗口;
如果(window.WindowState==WindowState.Maximized)
{
var mouseX=mouseEventArgs.GetPosition(window).X;
变量宽度=window.RestoreBounds.width;
var x=鼠标x-宽度/2;
if(x<0)
{
x=0;
}
其他的
如果(x+width>SystemParameters.PrimaryScreenWidth)
{
x=SystemParameters.PrimaryScreenWidth—宽度;
}
window.WindowState=WindowState.Normal;
window.Left=x;
window.Top=0;
//window.Width=window.ActualWidth;
//window.Height=window.ActualHeight;
//window.Left=0;
//window.Top=0;
//window.WindowStartupLocation=WindowStartupLocation.Manual;
//window.WindowState=WindowState.Normal;
}
window.DragMove();
}
}
}

是否有任何绑定错误出现在“输出”控制台中?否,HyperLink命令不工作,其他命令工作正常。能否显示ShowHideHeaderPopupCommand的代码?我不确定拖放“UIElementOnMouseMove”代码是如何相关的?我已经修复了这个问题。请回答我的另一个问题。