本文整理汇总了C#中ScatterViewItem.SetBinding方法的典型用法代码示例。如果您正苦于以下问题:C# ScatterViewItem.SetBinding方法的具体用法?C# ScatterViewItem.SetBinding怎么用?C# ScatterViewItem.SetBinding使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ScatterViewItem
的用法示例。
在下文中一共展示了ScatterViewItem.SetBinding方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BindScatterViewItemAndElement
public void BindScatterViewItemAndElement(ScatterViewItem svi, PrototypeElement element)
{
svi.Tag = element;
PrototypeElement _element = new PrototypeElement() { Width = element.Width, Height = element.Height, Center = element.Center, Orientation = element.Orientation};
Binding elementBindings = new Binding();
elementBindings.Mode = BindingMode.OneWayToSource;
elementBindings.Source = element;
elementBindings.Path = new PropertyPath("Width");
svi.SetBinding(ScatterViewItem.WidthProperty, elementBindings);
elementBindings = new Binding();
elementBindings.Mode = BindingMode.OneWayToSource;
elementBindings.Source = element;
elementBindings.Path = new PropertyPath("Height");
svi.SetBinding(ScatterViewItem.HeightProperty, elementBindings);
elementBindings = new Binding();
elementBindings.Mode = BindingMode.OneWayToSource;
elementBindings.Source = element;
elementBindings.Path = new PropertyPath("Center");
svi.SetBinding(ScatterViewItem.CenterProperty, elementBindings);
elementBindings = new Binding();
elementBindings.Mode = BindingMode.OneWayToSource;
elementBindings.Source = element;
elementBindings.Path = new PropertyPath("Orientation");
svi.SetBinding(ScatterViewItem.OrientationProperty, elementBindings);
if (element != null)
{
svi.Width = _element.Width;
svi.Center = _element.Center;
svi.Height = _element.Height;
svi.Orientation = _element.Orientation;
}
}
示例2: InitScatterViewEvents
private void InitScatterViewEvents() {
_fe = (FloatingElement) DataContext;
//if (_fe.Style == null) _fe.Style = this.FindResource("DefaultContainerStyle") as Style;
_svi = (ScatterViewItem) Helpers.FindElementOfTypeUp(this, typeof (ScatterViewItem));
if (_fe == null || _svi == null) return;
_fe.PropertyChanged += FePropertyChanged;
_floatingViewModel = IoC.Get<IFloating>();
//TODO: get scatterview instead of window
_sv = Application.Current.MainWindow;
// (ScatterView)BaseWPFHelpers.Helpers.FindElementOfTypeUp(_svi, typeof(ScatterView));
_fe.FlipEvent += FeFlipEvent;
_fe.UnFlipEvent += FeUnFlipEvent;
_svi.IsManipulationEnabled = !_fe.PromoteToMouse;
_svi.ContainerManipulationCompleted += SviScatterManipulationCompleted;
_svi.ContainerManipulationStarted += SviScatterManipulationStarted;
_svi.ContainerManipulationDelta += SviScatterManipulationDelta;
_svi.TouchDown += SviContactDown;
//_svi.CanMove = false;
_fe.DockingStyleChanged += _fe_DockingStyleChanged;
SizeChanged += UcFloatingElementContainerSizeChanged;
_svi.SetBinding(ScatterContentControlBase.CanMoveProperty,
new Binding {Source = _fe, Path = new PropertyPath("CanMove")});
_svi.SetBinding(ScatterContentControlBase.CanRotateProperty,
new Binding {Source = _fe, Path = new PropertyPath("CanRotate")});
_svi.SetBinding(ScatterContentControlBase.CanScaleProperty,
new Binding {Source = _fe, Path = new PropertyPath("CanScale")});
_svi.SetBinding(ScatterContentControlBase.ShowsActivationEffectsProperty,
new Binding {Source = _fe, Path = new PropertyPath("ShowsActivationEffects")});
if (_fe.DockingStyle != DockingStyles.None)
_svi.SetBinding(VisibilityProperty,
new Binding {
Source = AppStateSettings.Instance,
Path = new PropertyPath("DockedFloatingElementsVisible"),
Converter = new BooleanToVisibilityConverter()
});
//_svi.CanMove = false;
//_svi.CanScale = false;
//_svi.CanRotate = false;
Loaded += FloatingContainerLoaded;
Close += FloatingContainerClose;
PreviewMouseDoubleClick += FloatingContainerPreviewMouseDoubleClick;
}
示例3: OnJoinAnimationCompleted
//---------------------------------------------------------//
/// <summary>
/// Called when an join animation is completed.
/// </summary>
/// <param name="pieceBeingRemoved">The item that should be removed after the join.</param>
/// <param name="pieceRemaining">The item that will remain after the join.</param>
private void OnJoinAnimationCompleted(ScatterViewItem pieceBeingRemoved, ScatterViewItem pieceRemaining)
{
if (scatter.Items.Contains(pieceBeingRemoved) && scatter.Items.Contains(pieceRemaining))
{
// Get the content for the joined piece
PuzzlePiece joinedPiece = puzzleManager.JoinPieces((PuzzlePiece)pieceBeingRemoved.Content, (PuzzlePiece)pieceRemaining.Content);
// When size changes, center also must be adjusted so the piece doesn't jump
Vector centerAdjustment = puzzleManager.CalculateJoinCenterAdjustment((PuzzlePiece)pieceRemaining.Content, joinedPiece);
centerAdjustment = PuzzleManager.Rotate(centerAdjustment, pieceRemaining.ActualOrientation);
// Replace the item's content with the new group
pieceRemaining.Content = joinedPiece;
// Resize the item to the size of the piece
pieceRemaining.Width = Math.Round(joinedPiece.ClipShape.Bounds.Width, 0);
pieceRemaining.Height = Math.Round(joinedPiece.ClipShape.Bounds.Height, 0);
// Adjust the center
pieceRemaining.Center = pieceRemaining.ActualCenter + centerAdjustment;
// Bind the item to the new piece
Binding binding = new Binding();
binding.Source = joinedPiece;
pieceRemaining.SetBinding(ScatterViewItem.DataContextProperty, binding);
pieceRemaining.SetRelativeZIndex(RelativeScatterViewZIndex.AboveInactiveItems);
// Remove the old item from the ScatterView
scatter.Items.Remove(pieceBeingRemoved);
// Set this to false before StartJoinIfPossible. If there is another join, JoinPieces will set joinInProgress to true,
// and then it will immediately be set back when StartJoinIfPossible returns.
joinInProgress = false;
// See if there are any other pieces eligible to join to the newly joined piece
StartJoinIfPossible(pieceRemaining);
}
else
{
// Still want to set this to false, even if no join was performed
joinInProgress = false;
}
}