private void ItemsOwner_TileDragEnded(object sender, TileViewDragEventArgs e) { Mouse.Capture(null); (e.DraggedItem as FrameworkElement).ReleaseMouseCapture(); var columnWidth = this.DesiredSize.Width / this.ColumnsCount; var rowHeight = this.DesiredSize.Height / this.RowsCount; var column = (int)(this.lastMousePosition.X / columnWidth); var row = (int)(this.lastMousePosition.Y / rowHeight); var item = e.DraggedItem as RadTileViewItem; if (!this.TrySwapTiles(item, this.secondTile)) { var currentRow = TileViewAttachedProperties.GetRow(item); var currentColumn = TileViewAttachedProperties.GetColumn(item); var rowSpan = TileViewAttachedProperties.GetRowSpan(item); var columnSpan = TileViewAttachedProperties.GetColumnSpan(item); this.MarkCells(currentRow, currentColumn, rowSpan, columnSpan, false); TileViewAttachedProperties.SetColumn(item, column); TileViewAttachedProperties.SetRow(item, row); this.FixOverlapping(row, column, rowSpan, columnSpan); } this.secondTile = null; this.isTileDragged = false; this.InvalidateMeasure(); }
private void tileView1_TileStateChanged(object sender, RadRoutedEventArgs e) { RadTileViewItem item = e.OriginalSource as RadTileViewItem; if (item != null) { RadFluidContentControl fluid = item.ChildrenOfType <RadFluidContentControl>().FirstOrDefault(); if (fluid != null) { switch (item.TileState) { case TileViewItemState.Maximized: fluid.State = FluidContentControlState.Large; break; case TileViewItemState.Minimized: fluid.State = FluidContentControlState.Normal; break; case TileViewItemState.Restored: fluid.State = FluidContentControlState.Normal; break; default: break; } } } }
private void InsertGadget(string displayName, string gadgetViewClassName, string gadgetViewModelClassName, int gadgetPosition, object viewModelObject = null, String tileState = "Restored") { foreach (RadTileViewItem item in this.rtvDashboard.Items) { if ((item.Header as Telerik.Windows.Controls.HeaderedContentControl).Content as string == displayName && item.Content.GetType().Name == gadgetViewClassName) { return; } } RadTileViewItem radTileViewItem = new RadTileViewItem { Header = new Telerik.Windows.Controls.HeaderedContentControl { Content = displayName, Foreground = new SolidColorBrush(Colors.Black) }, Foreground = new SolidColorBrush(Colors.Black), RestoredHeight = 300, Content = GetDashboardTileContent(displayName, gadgetViewClassName, gadgetViewModelClassName, viewModelObject), Position = gadgetPosition, TileState = GetTileState(tileState) }; this.rtvDashboard.Items.Add(radTileViewItem); }
private bool TrySwapTiles(RadTileViewItem tile1, RadTileViewItem tile2) { if (tile1 == null || tile2 == null) { return(false); } var fColumn = TileViewAttachedProperties.GetColumn(tile1); var fRow = TileViewAttachedProperties.GetRow(tile1); var fRowSpan = TileViewAttachedProperties.GetRowSpan(tile1); var fColumnSpan = TileViewAttachedProperties.GetColumnSpan(tile1); var sColumn = TileViewAttachedProperties.GetColumn(tile2); var sRow = TileViewAttachedProperties.GetRow(tile2); var sRowSpan = TileViewAttachedProperties.GetRowSpan(tile2); var sColumnSpan = TileViewAttachedProperties.GetColumnSpan(tile2); this.MarkCells(fRow, fColumn, fRowSpan, fColumnSpan, false); this.MarkCells(sRow, sColumn, sRowSpan, sColumnSpan, false); TileViewAttachedProperties.SetColumn(tile1, sColumn); TileViewAttachedProperties.SetRow(tile1, sRow); TileViewAttachedProperties.SetColumn(tile2, fColumn); TileViewAttachedProperties.SetRow(tile2, fRow); this.MarkCells(sRow, sColumn, fRowSpan, fColumnSpan, true); this.MarkCells(fRow, fColumn, sRowSpan, sColumnSpan, true); this.FixOverlapping(sRow, sColumn, fRowSpan, fColumnSpan); this.FixOverlapping(fRow, fColumn, sRowSpan, sColumnSpan); return(true); }
internal void MoveDraggingItem(double offsetX, double offsetY) { if (this.IsDraggingInMaximizedMode) { if (this.IsDockingEnabled) { this.CheckForMaximization(); } var itemToSwap = this.FindItemToSwap(); if (this.DragMode == TileViewDragMode.Slide) { this.SwapWithDraggingItem(itemToSwap); } else { if (this.containerToSwap != null && this.containerToSwap != itemToSwap) { this.containerToSwap.IsMouseOverDragging = false; } this.containerToSwap = itemToSwap; if (this.containerToSwap != null) { this.containerToSwap.IsMouseOverDragging = true; } } } }
//modify by 安凯航.2011年9月5日 //如果radtileview有值则表示不进行初始化 private void LoadWebPartData() { if (radtileview == null) { radtileview = new RadTileView(); radtileview.MinimizedColumnWidth = new GridLength(310); //RadTileViewItem item1 = new RadTileViewItem(); //item1.TileState = TileViewItemState.Minimized; //item1.Header = "系统日志"; //item1.Content = new SystemLogger(); //radtileview.Items.Add(item1); RadTileViewItem item2 = new RadTileViewItem(); item2.TileState = TileViewItemState.Maximized; item2.Header = "待办任务"; item2.Content = new SMT.SAAS.Platform.WebParts.Views.PendingTask(); radtileview.Items.Add(item2); RadTileViewItem item5 = new RadTileViewItem(); item5.TileState = TileViewItemState.Minimized; item5.Header = "我的单据"; item5.Content = new SMT.SAAS.Platform.WebParts.Views.MyRecord(); radtileview.Items.Add(item5); //RadTileViewItem item3 = new RadTileViewItem(); //item3.TileState = TileViewItemState.Minimized; //item3.Header = "消息提醒"; //item3.Content = new SMT.SAAS.Platform.WebParts.Views.NoteRemind(); //radtileview.Items.Add(item3); RadTileViewItem item4 = new RadTileViewItem(); item4.TileState = TileViewItemState.Minimized; item4.Header = "新闻动态"; item4.Content = new SMT.SAAS.Platform.WebParts.Views.News(); radtileview.Items.Add(item4); //CheckeDepends("SMT.SaaS.OA.UI"); RadTileViewItem item6 = new RadTileViewItem(); item6.TileState = TileViewItemState.Minimized; item6.Header = "公司发文"; item6.Content = new SMT.SAAS.Platform.WebParts.Views.OAWebPart(); radtileview.Items.Add(item6); Root.Children.Add(radtileview); } else { foreach (RadTileViewItem item in radtileview.Items) { IWebpart webPart = item.Content as IWebpart; if (webPart != null) { webPart.Initialize(); } } } }
private static void OnIsSelectedPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { RadTileViewItem tileViewItem = d as RadTileViewItem; if (tileViewItem != null) { tileViewItem.OnIsSelectedChanged((bool)e.OldValue, (bool)e.NewValue); } }
private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (this.MaximizedItem != null) { this.lastMousePosition = e.GetPosition(null); var itemUnderMouse = this.GetItemUnderMouse(this.lastMousePosition); this.DraggingCandidate = itemUnderMouse as RadTileViewItem ?? itemUnderMouse.ParentOfType <RadTileViewItem>(); } }
private static void OnCanToggleState(object sender, CanExecuteRoutedEventArgs e) { RadTileViewItem tileViewItem = sender as RadTileViewItem; if (tileViewItem != null) { e.CanExecute = tileViewItem.CanToggleState(); } }
private static void OnHeaderStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { RadTileViewItem item = d as RadTileViewItem; if (item != null && item.isApplyTemplateFinished) { item.InitializeTemplateChildren(); } }
private static void OnIsMouseOverDraggingPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { RadTileViewItem source = d as RadTileViewItem; if (source != null) { source.UpdateMouseOverStates(); } }
private void OnItemsOwnerTilePositionChanged(object sender, Telerik.Windows.RadRoutedEventArgs e) { if (!this.itemsOwner.IsLoaded || this.secondTile != null) { return; } this.secondTile = e.OriginalSource as RadTileViewItem; }
private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { RadTileViewItem source = d as RadTileViewItem; if (source != null && source.ParentTileView != null) { source.ParentTileView.OnInternalLayoutChanged(); } }
private static void OnPositionPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { RadTileViewItem item = d as RadTileViewItem; if (item != null && item.ParentTileView != null && !item.CancelPositionChanged) { int newPos = (int)e.NewValue; item.OnPositionChanged((int)e.OldValue, newPos); } }
//菜单点击事件 private void Menu_Click(object sender, RoutedEventArgs e) { try { MainMenuModel main = (sender as RadButton).Tag as MainMenuModel; if (main.ClassName != "") { string assemblyName = main.Assembly; //所属程序集 string className = main.ClassName; //类名 Assembly ass = Assembly.Load(assemblyName); Type pageType = ass.GetType(className); if (_openPageName.Any(s => s == pageType.Name)) { //如果已经存在,则不需要新建,直接激活 int pageIndex = _openPageName.IndexOf(pageType.Name); mainView.MaximizedItem = mainView.Items[pageIndex]; } else { Frame f = new Frame(); f.NavigationUIVisibility = System.Windows.Navigation.NavigationUIVisibility.Hidden; BusinessBasePage businessPage = (BusinessBasePage)Activator.CreateInstance(pageType); f.Name = pageType.Name; f.Content = businessPage.Title; f.Navigate(businessPage); RadTileViewItem rtvi = new RadTileViewItem(); rtvi.SizeChanged += rtvi_SizeChanged; rtvi.Name = pageType.Name; TileItemTitle tit = new TileItemTitle(); tit.name = businessPage.Title; tit.Fontsize = 18; rtvi.DataContext = tit; rtvi.Content = f; mainView.Items.Add(rtvi); mainView.MaximizedItem = mainView.Items[mainView.Items.Count - 1]; _openPageName.Add(pageType.Name); //只有超过一个界面打开的情况下才需要分两列显示 if (_openPageName.Count > 1) { mainView.ColumnsCount = 2; } else { mainView.ColumnsCount = 1; } } } } catch (Exception ex) { DialogManager.ShowMessageAsync(Application.Current.MainWindow as MetroWindow, UIResources.MsgInfo, ex.ToString(), MessageDialogStyle.Affirmative, null); } }
private void DashboardTileViewItemRemoved(object sender, RoutedEventArgs e) { try { RadTileViewItem tileViewItem = (sender as Button).ParentOfType <RadTileViewItem>(); string gadgetName = (tileViewItem.Header as Telerik.Windows.Controls.HeaderedContentControl).Content as string; switch (gadgetName) { case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_ASSUMPTIONS: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_TERMINAL_VALUE_CALCULATIONS: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_SUMMARY: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_SENSIVITY: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_FORWARD_EPS: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_FORWARD_BVPS: case GadgetNames.HOLDINGS_FREE_CASH_FLOW: { for (int i = 0; i < this.rtvDashboard.Items.Count; i++) { string gName = ((this.rtvDashboard.Items[i] as RadTileViewItem).Header as Telerik.Windows.Controls.HeaderedContentControl).Content as string; if (gName == GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_ASSUMPTIONS || gName == GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_TERMINAL_VALUE_CALCULATIONS || gName == GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_SUMMARY || gName == GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_SENSIVITY || gName == GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_FORWARD_EPS || gName == GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_FORWARD_BVPS || gName == GadgetNames.HOLDINGS_FREE_CASH_FLOW) { this.rtvDashboard.Items.RemoveAt(i); i--; } } } break; default: { this.rtvDashboard.Items.Remove(tileViewItem); (tileViewItem.Content as ViewBaseUserControl).Dispose(); tileViewItem.Content = null; } break; } this.rtvDashboard.Visibility = this.rtvDashboard.Items.Count == 0 ? Visibility.Collapsed : Visibility.Visible; this.txtNoGadgetMessage.Visibility = this.rtvDashboard.Items.Count == 0 ? Visibility.Visible : Visibility.Collapsed; } catch (Exception ex) { //_logger.Log("User : "******"\nMessage: " + ex.Message + "\nStackTrace: " + ex.StackTrace, Category.Exception, Priority.Medium); Prompt.ShowDialog("Message: " + ex.Message + "\nStackTrace: " + ex.StackTrace, "Exception", MessageBoxButton.OK); } }
//每个页面的关闭按钮事件处理 private void CloseToggleButton_Click(object sender, RoutedEventArgs e) { RadButton rb = sender as RadButton; RadTileViewItem rtvi = rb.TemplatedParent as RadTileViewItem; int pageIndex = _openPageName.IndexOf(rtvi.Name); _openPageName.RemoveAt(pageIndex); mainView.Items.RemoveAt(pageIndex); if (_openPageName.Count == 1) { mainView.ColumnsCount = 1; } }
private void AddOAWebPart() { var OAWebPaer = CreateOAWebPart(); if (OAWebPaer != null) { RadTileViewItem item6 = new RadTileViewItem(); item6.TileState = TileViewItemState.Minimized; item6.Header = "公司发文"; item6.Content = OAWebPaer; radtileview.Items.Add(item6); } }
public Example() { InitializeComponent(); this.BindConfigurationPanel(); var viewModel = new MainViewModel(); foreach (Person item in viewModel.Items) { RadTileViewItem tileViewItem = new RadTileViewItem(); tileViewItem.Content = item; this.tileView.Items.Add(tileViewItem); } this.EnsureLoadState(); }
private void PageTitle_Click(object sender, RoutedEventArgs e) { DependencyObject dobj = e.OriginalSource as DependencyObject; RadTileViewItem tileItem = FindParent <RadTileViewItem>(dobj); if (tileItem.TileState == TileViewItemState.Maximized) { tileItem.TileState = TileViewItemState.Minimized; } else { tileItem.TileState = TileViewItemState.Maximized; } }
void rtvi_SizeChanged(object sender, SizeChangedEventArgs e) { RadTileViewItem rtvi = sender as RadTileViewItem; TileItemTitle tit = rtvi.DataContext as TileItemTitle; if (rtvi.ActualWidth <= 100) { tit.Fontsize = 8; (rtvi.Content as Frame).IsEnabled = false; } else { tit.Fontsize = 18; (rtvi.Content as Frame).IsEnabled = true; } }
/// <summary> /// Handle Dashboard Gadget Add event /// </summary> /// <param name="param">DashboardTileViewItemInfo</param> public void HandleDashboardTileViewItemAdded(DashboardTileViewItemInfo param) { try { foreach (RadTileViewItem rtvitem in this.rtvDashboard.Items) { if ((rtvitem.Header as Telerik.Windows.Controls.HeaderedContentControl).Content as string == param.DashboardTileHeader && rtvitem.Content.GetType().Name == param.DashboardTileObject.GetType().Name) { return; } } RadTileViewItem item = new RadTileViewItem(); item.RestoredHeight = 300; item.Header = new Telerik.Windows.Controls.HeaderedContentControl { Content = param.DashboardTileHeader, Foreground = new SolidColorBrush(Colors.Black), FontSize = 8, FontFamily = new FontFamily("Arial") }; item.Content = param.DashboardTileObject; this.rtvDashboard.Items.Add(item); ViewBaseUserControl control = (ViewBaseUserControl)(item.Content); if (control != null) { control.IsActive = true; } if (this.rtvDashboard.Items.Count == 1) { this.rtvDashboard.RowHeight = new GridLength(400); (this.rtvDashboard.Items[0] as RadTileViewItem).TileState = TileViewItemState.Maximized; } if (this.rtvDashboard.Items.Count == 2) { (this.rtvDashboard.Items[0] as RadTileViewItem).TileState = TileViewItemState.Restored; (this.rtvDashboard.Items[1] as RadTileViewItem).TileState = TileViewItemState.Restored; } } catch (InvalidOperationException) { //System generates data errors that could be ignored } }
private void FinishDrag() { this.ClearTransformDraggingItem(); this.DraggingCandidate = null; this.mouseArgs = null; if (this.IsDraggingInMaximizedMode && this.DraggingItem != null) { bool isDockingMaximization = this.shouldMaximizeDraggedItem && this.PossibleDockingPosition != null; if (this.DragMode == TileViewDragMode.Swap && this.containerToSwap != null) { this.containerToSwap.IsMouseOverDragging = false; if (!isDockingMaximization) { this.SwappingItems.Add(this.DraggingItem); this.SwapWithDraggingItem(this.containerToSwap); } } if (this.ItemContainerGenerator.IndexFromContainer(this.DraggingItem) != -1) { this.OnTileDragEnded(new TileViewDragEventArgs(this.DraggingItem, TileDragEndedEvent, this)); } if (this.DraggingItem != null) { this.ShowDraggingItem(); if (isDockingMaximization) { this.MinimizedItemsPosition = this.PossibleDockingPosition.Value; this.PossibleDockingPosition = null; var tmp = this.DraggingItem; this.ClearTransformDraggingItem(); this.DraggingItem = null; tmp.TileState = TileViewItemState.Maximized; } else { this.ClearTransformDraggingItem(); this.DraggingItem = null; } } } this.SwappingItems.Clear(); }
private RadTileViewItem FindItemToSwap() { this.visualHits = new List <DependencyObject>(); var pt = this.mouseArgs.GetPosition(this); VisualTreeHelper.HitTest(this, null, new HitTestResultCallback(this.MyHitTestResult), new PointHitTestParameters(pt)); var items = new List <RadTileViewItem>(); foreach (var vh in this.visualHits) { RadTileViewItem container = vh.GetParents().OfType <RadTileViewItem>().FirstOrDefault(); if (container != this.DraggingItem) { items.Add(container); } } this.visualHits.Clear(); return(items.OfType <RadTileViewItem>().Where(i => i != null && i != this.DraggingItem && i.ParentTileView == this).FirstOrDefault()); }
private void SwapWithDraggingItem(RadTileViewItem item) { if (item != null && item != this.MaximizedItem && ((currentPosition.Y > this.previousPosition.Y && this.DraggingItem.Position > item.Position) || currentPosition.Y < this.previousPosition.Y && this.DraggingItem.Position < item.Position)) { this.SwappingItems.Clear(); } if (item != null && !this.SwappingItems.Contains(item)) { this.SwappingItems.Clear(); if (this.DraggingItem.Position != item.Position) { this.SwappingItems.Add(item); } this.DraggingItem.Position = item.Position; } currentPosition = this.previousPosition; }
private void DragTiles(Telerik.Windows.DragDrop.DragEventArgs e, Point currentMousePosition) { if (this.IsItemDraggingEnabled) { var offsetX = currentMousePosition.X - this.lastMousePosition.X; var offsetY = currentMousePosition.Y - this.lastMousePosition.Y; if (!this.IsDraggingInMaximizedMode && this.DraggingCandidate != null) { this.DraggingItem = this.DraggingCandidate; this.RaiseEvent(new TileViewDragEventArgs(this.DraggingItem, TileDragStartedEvent, this)); this.HideDraggingItem(); } else if (this.IsDraggingInMaximizedMode) { this.lastMousePosition = currentMousePosition; this.mouseArgs = e; this.MoveDraggingItem(offsetX, offsetY); } } }
private void rbtnChecked(object sender, RoutedEventArgs e) { RadTileViewItem item = new RadTileViewItem(); StyleManager.SetTheme(item, new SummerTheme()); item.Header = (sender as RadRibbonToggleButton).Content; switch (item.Header.ToString()) { case "Areas": item.Content = new frmGestionarAreas(); break; case "Perfiles": item.Content = new frmGestionarPerfiles(); break; case "Tablas": item.Content = new frmGestionarTablas(); break; case "Estados": item.Content = new frmGestionarEstados(); break; case "Equipos": item.Content = new frmGestionarEquipos(); break; case "Tipo Mantenimiento": item.Content = new frmGestionarTipoMantenimiento(); break; case "Orden de Trabajo": item.Content = new frmGestionarOrdendeTrabajo(); break; case "Marcas": item.Content = new frmGestionarMarca(); break; case "Modelos": item.Content = new frmGestionarModelos(); break; case "Solicitud": item.Content = new frmGestionarSolicitud(); break; case "Mantenimientos programados": item.Content = new frmConsultarEquiposaMantener(); break; case "Equipos a mantener": item.Content = new frmConsultarEquiposaMantener(); break; case "Asignar Equipos": item.Content = new frmAsignarEquiposAMantener(); break; } item.MinimizedHeight = 20; TileContainerRoot.Items.Add(item); }
private void rbtnChecked(object sender, RoutedEventArgs e) { RadTileViewItem item = new RadTileViewItem(); StyleManager.SetTheme(item, new SummerTheme()); item.Header = (sender as RadRibbonToggleButton).Content; switch (item.Header.ToString()) { //case "Permisos": // item.Content = new frmGestionarPermisos(); // break; case "IniciarSesion": item.Content = new frmIniciarSesion(); break; case "Areas": item.Content = new frmGestionarAreas(); break; case "Perfiles": item.Content = new frmGestionarPerfiles(); break; case "Tablas": item.Content = new frmGestionarTablas(); break; case "Estados": item.Content = new frmGestionarEstados(); break; case "Equipos": item.Content = new frmGestionarEquipos(); break; case "Tipo Mantenimiento": item.Content = new frmGestionarTipoMantenimiento(); break; case "Orden de Trabajo": item.Content = new frmGestionarOrdendeTrabajo(); break; case "Marcas": item.Content = new frmGestionarMarca(); break; case "Modelos": item.Content = new frmGestionarModelos(); break; case "Productos": item.Content = new frmGestionarProducto(); break; case "Solicitud": item.Content = new frmGestionarSolicitud(); break; case "Mantenimientos programados": item.Content = new frmConsultarEquiposaMantener(); break; case "Equipos a mantener": item.Content = new frmConsultarEquiposaMantener(); break; case "Asignar Equipos": item.Content = new frmAsignarEquiposAMantener(); break; case "Solicitud Mantenimiento": item.Content = new frmGestionarSolicitud(); break; case "Apertura Mantenimiento": item.Content = new frmAperturaMantenimiento(); break; case "Contraseña": break; case "Registro Orden": item.Content = new frmGestionarOrdendeTrabajo(); break; case "Usuarios": item.Content = new frmGestionarUsuarios(); break; case "Cerrar Mantenimiento": item.Content = new frmCerrarMantenimiento(); break; case "Plan de Trabajo de Equipos": item.Content = new frmGestionarPlandeTrabajodeEquipos(); break; } item.MinimizedHeight = 20; item.TileState = TileViewItemState.Maximized; TileContainerRoot.Items.Add(item); }
private void ItemsOwner_TileDragStarted(object sender, TileViewDragEventArgs e) { this.isTileDragged = true; this.firstTile = e.DraggedItem as RadTileViewItem; }