您的位置:首页 > 运维架构

POPUP + 控件重写 + 从属关系数据绑定

2016-11-22 00:23 441 查看
<Button  Content="Restore" Style="{StaticResource RESTORE}" cal:Message.Attach="[Event Click] = [Action Pop($view,$eventArgs)]" />

<Style x:Key="RESTORE" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Border Background="#01FFFFFF" >
<Image Source="/Projects_Manager;component/Image/addres.png" Height="30" Width="30" Cursor="Hand" ToolTipService.ToolTip="yyy"/>
<!--<TextBlock Text="{TemplateBinding Content}" FontSize="12"/>-->
</Border>
<Popup IsOpen="{Binding IsPop1Open, Mode=TwoWay}"  x:Name="pop1" HorizontalOffset="{Binding PopW1Offset, Mode=TwoWay}" VerticalOffset="{Binding PopH1Offset, Mode=TwoWay}" Canvas.ZIndex="1">
<!--Placement="Bottom" StaysOpen="False" Focusable="False" AllowsTransparency="True" PopupAnimation="Slide">-->
<Border>
<StackPanel>
<Border Background="White" BorderBrush="LightGray" BorderThickness="1" Width="400">
<StackPanel Margin="10" Orientation="Vertical">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<TextBlock Text="yyy:" Foreground="Black" Margin="0,5"/>
<TextBox Text="{Binding NRestore_Name, Mode=TwoWay}" Width="110"  Margin="10,5" VerticalAlignment="Center"  />
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock Text="yyy:" Foreground="Black"  Margin="0,5"/>
<TextBox Text="{Binding NRestore_Time, Mode=TwoWay}" Width="110" Margin="10,5" VerticalAlignment="Center"  />
</StackPanel>
</Grid>
<StackPanel Orientation="Horizontal">
<TextBlock Text="yyy:" Foreground="Black" Margin="0,5"/>
<TextBox Text="{Binding NClose_Version, Mode=TwoWay}" Width="150" Margin="10,5" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<TextBlock Text="yyy:" Foreground="Black" Margin="0,5"/>
<TextBox Text="{Binding NRestore_Cause, Mode=TwoWay}" AcceptsReturn="True" Width="370" TextWrapping="Wrap" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"  Height="30" HorizontalAlignment="Left"/>
<TextBlock Text="yyy:" Foreground="Black" Margin="0,5"/>
<TextBox Text="{Binding NRestore_Way, Mode=TwoWay}" AcceptsReturn="True" Width="370" TextWrapping="Wrap" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"  Height="30" HorizontalAlignment="Left"/>
<StackPanel Orientation="Horizontal" Margin="5" HorizontalAlignment="Center">
<Button Width="50" Height="20" Content="提交" Margin="0,5,20,5" cal:Message.Attach="[Event Click]=[Action PopSubmit($view,$eventArgs,pop1)]" />
<Button Width="50" Height="20" Content="取消" Margin="0,5,0,5" cal:Message.Attach="[Event Click]=[Action PopClose($view,$eventArgs,pop1)]" />
</StackPanel>
</StackPanel>
</Border>
</StackPanel>
</Border>
</Popup>
</Grid>

</ControlTemplate>
</Setter.Value>
</Setter>
</Style>


public void Pop(object sender, RoutedEventArgs e)
{

Button btn = (sender as Button);
var vm = (TestProperty)btn.DataContext;
switch (Project.Pop2)
{
case false:

vm.PopW2Offset = -430;
vm.IsPop2Open = true;
Project.Pop2 = true;
return;
case true:
vm.IsPop2Open = false;
Project.Pop2 = false;
return;
default: break;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: