示例#1
0
        private void UpdateTrackConditionMeterPosition(HudTrackConditionsViewModelInfo trackConditionViewModelInfo, FrameworkElement trackConditionView)
        {
            double left = 0;
            double top  = 0;

            if (trackerConditionsMeterPosition != null)
            {
                left = trackerConditionsMeterPosition.Value.X;
                top  = trackerConditionsMeterPosition.Value.Y;
            }
            else
            {
                Tuple <double, double> positions;

                if (trackConditionViewModelInfo.Position.HasValue)
                {
                    positions = new Tuple <double, double>(trackConditionViewModelInfo.Position.Value.X, trackConditionViewModelInfo.Position.Value.Y);
                }
                else
                {
                    positions = hudPanelService.GetInitialTrackConditionMeterPosition();
                }

                left = positions.Item1;
                top  = positions.Item2;

                trackerConditionsMeterPosition       = new Point(positions.Item1, positions.Item2);
                trackerConditionsMeterPositionOffset = new Point(0, 0);
            }

            SetTrackConditionMeterPosition(trackConditionView, left, top);
        }
示例#2
0
        private void BuildTrackConditionsMeter(HudTrackConditionsViewModelInfo trackConditionViewModelInfo)
        {
            if (trackConditionViewModelInfo == null)
            {
                return;
            }

            try
            {
                var trackConditionViewModel = new HudTrackConditionsViewModel(trackConditionViewModelInfo)
                {
                    OffsetX = trackerConditionsMeterPositionOffset.X,
                    OffsetY = trackerConditionsMeterPositionOffset.Y
                };

                var trackConditionView = new TrackConditionsMeterView
                {
                    DataContext = trackConditionViewModel
                };

                dgCanvas.Children.Add(trackConditionView);

                UpdateTrackConditionMeterPosition(trackConditionViewModelInfo, trackConditionView);
            }
            catch (Exception e)
            {
                LogProvider.Log.Error(this, "Failed to initialize track condition meter.", e);
            }
        }