سؤال

ولدي ContentControl تتألف من اليسار إلى اليمين من زر، التقسيم وتحرير وسرد. أريد القائمة المنسدلة تحرير وسرد ليصطف مع الجانب الأيسر من السيطرة على عكس الجانب الأيسر من منسدل. لا يمكن العثور على ما يبدو مستندات على وضع نسبي، وما إلى ذلك لأي شخص التعامل مع هذا؟ TIA

هل كانت مفيدة؟

المحلول

ولقد فعلت شيئا من هذا القبيل من قبل - انتهى بي الأمر المستمدة من تحرير وسرد، والحصول على جزء المنبثقة من السيطرة واستخدام في CustomPopupPlacementCallback لوضعه. شيء من هذا القبيل ...

class MyComboBox : ComboBox
{
    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();

        var popup = (Popup)Template.FindName("PART_Popup", this);
        popup.Placement = PlacementMode.Custom;
        popup.CustomPopupPlacementCallback = placePopup;
    }

    private CustomPopupPlacement[] placePopup(Size popupSize, Size targetSize, Point offset)
    {
        var placements = new[] { new CustomPopupPlacement() };
        placements[0].Point = // position the drop-down here!
        return placements;
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top